c++中vector向量几种情况的总结(向量指针,指针的向量)
1.标准库vector类型
vector 是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。标准库将负责管理与存储元素相关的内存。我们把 vector 称为容器,是因为它可以包含其他对象。一个容器中的所有对象都必须是同一种类型的。
用 vector之前,必须包含相应的头文件。
#include
using std::vector;
vector 是一个类模板(class template)。使用模板可以编写一个类定义或函数定义,而用于多个不同的数据类型。因此,我们可以定义保存 string 对象的 vector,或保存 int 值的 vector,又或是保存自定义的类类型对象vector。使用类模板时只需要简单了解类模板是如何定义的就可以了。声明从类模板产生的某种类型的对象,需要提供附加信息,信息的种类取决于模板。以 vector 为例,必须说明 vector 保存何种对象的类型,通过将类型放在类模板名称后面的尖括号中来指定类型:
vector
vector
注意:和其他变量定义一样(作为定义变量看待,如 int a;float b;),定义 vector 对象要指定类型和一个变量的列表。上面的第一个定义,类型是vector
定义方法为:vector<类型> 名称
vector<类型> :作为一个整体,是类型,相当于int,float。
名称 相当于变量的名字,a,b。
则以下几种都是成立的
vector
vector
vector
vector
vector 不是一种数据类型,而只是一个类模板,可用来定义任意多种数据类型。vector 类型的每一种都指定了其保存元素的类型。因此,vector
2.Vector向量几种情况的总结
1) vector
#include #include using namespace std; int main() { vector k; for (int j = 0; j<12; j++) { k.push_back(j);//向kk中追加值 } for (int j = 0; j<12; j++) { cout < [j]>
#include #include using namespace std; int main() { vector k; int *p = new int[15]; for (int j = 0; j<15; j++) { p[j] = j; k.push_back(&p[j]); } for (int i = 0; i < 15;i++) { cout << *k[i]<< " ";//因为向量容器里面都是int型的指针变量, } //所以值都是指针,所以需要间接访问运算符* delete[]p; system("pause"); return 0; }
3)vector
#include #include using namespace std; int main() { vector *k;//vector向量指针 k = new vector[5]; //相当于int *p = new int[5];即vector *kkk=new vector[5]; for (int i = 0; i<5; i++) { for (int j = 0; j<10; j++) { k[i].push_back(j);//像向量指针中追加值 } } for (int i = 0; i<5; i++) { for (int j = 0; j < k[i].size(); j++) cout << k[i][j] << " "; cout << endl; } delete[] k; system("pause"); }
4)vector
#include #include using namespace std; int main() { vector *k;//int指针的向量指针 k = new vector[5]; int *p = new int[10]; for (int i = 0; i < 5; i++) { for (int j = 0; j < 10; j++) { p[j] = j; k[i].push_back(&p[j]); } } for (int i = 0; i < 5; i++) { for (int j = 0; j < 10; j++) { cout<<*k[i][j]<<" "; } cout << endl; } delete[]p; delete[]k; system("pause"); }