关于vector的授课知识要点

以下是由庭博网校原创,转载时请注明出处。金庭波 QQ:14280784   86974558   

vector 是什么?

vector就是数组在C++中的另一种称呼,它与C的数组的区别在于,它是变长的,C的数组是定长的。所以在写代码的时候,你要考虑它的长度是变化的这个特征。

在使用时要 #include <vector>

vector 就是以前的数组成精了,换了个名字叫“容器”。原形其实是“类模板”。

也就是说它既有数组的基因(数据类型是同一种),也有类模板的基因(用于多种不同类型),

听起来有点矛盾,实际上就是,你要么就是整型的数组,要么就是字符串的数组的意思。

例如:vector<int> ivec;    //定义了一个整形对象列表

   Vector<Sales_item> Sales_vec;  //定义了一个Sales_item类类型的对象列表Sales_vec;

“列表”两个字不能少,表示是一个数组的意思。

以后定义数组的时候,就用verctor了;

 

vector 对象的定义和初始化有四种方法:

1、vector<T> v1;  例如: vector<int> v1;  表示定义了一个整型数组,元素的值为0

2、vector<T> v2(v1);  例如 vector<int> v2(v1) 表示定义了一个v2数组,并用v1进行初始化;

3、vector<T> v3(n,i);  例如vector<int> v3(5,10)表示定义了一个v3数组,有5个元素,初始值都为10;

4、vector<T> v4(n);  例如vector<string> v4(5)表示定义了一个字符串的v4数组,有5个元素。

第4条要说道说道一下了:

对于C语言内置的类型如int,标准库都用0值进行初始化。

  对于含有构造类型的类型,将用它们默认的构造函数进行初始化;

  对于没有带构造函数的类型,标准库为它初始化。

 

以下例子是说明:返回s1.size()函数的类型是vector<string >::size_type;而不是int型。

vector<string>::size_type;中的string说明这个size()的返回值是在 string中定义的。

#include "iostream"

#include "string"

#include "vector"

using namespace std;

int main()

{

       vector<string> s1(10,"hi");

       vector<string>::size_type i;

       i=s1.size();

       cout<<i<<endl;

       for(i=0;i<s1.size();i++)

              cout<<s1[i]<<" ";

       getchar();

       return 0;

}

//以下例子说明用下标的方法向vector添加元素是错误的

vector<int> ivec;  //先定义一个vector数组

for(vector<int>::size_type i=0;i!=10;i++)  //然后用循环值向容器添加值

  ivec[i]=i;

应该象下面这样做才是正确的:

vector<int> ivec;

for(vector<int>::size_type i=0;i!=10;i++)

ivce.push_back(i);

 

下面是一个完整的输入字符串,显示字符串的例子

你可能感兴趣的:(c,vector,String,语言)