关于stl中vector的小问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 22:40:11
vector<int> vec1(10);//预留10个int空间
vector<int> vec2[10];//vec2为一个数组,有10个vector<int>元素

vector<string> vec3(10);//预留10个string空间
vector<string> vec4[10];//vec4为一个数组,有10个vector<string>元素
我知道的已经注释了,但是我不明白具体怎么用:vec2到底怎么去赋值,它的用法?还有vec3和vec4具体怎样赋值,怎么操作?请大家给我一些实例或者解释清楚都行。copy的,自己写的,网址,什么方法都行,只要能把问题说清楚。感谢大家!

创建一个vector
vector容器提供了多种创建方法,下面介绍几种常用的。
创建一个Widget类型的空的vector对象:
vector<Widget> vWidgets;
创建一个包含500个Widget类型数据的vector:
vector<Widget> vWidgets(500);
创建一个包含500个Widget类型数据的vector,并且都初始化为0:
vector<Widget> vWidgets(500, Widget(0));
创建一个Widget的拷贝:
vector<Widget> vWidgetsFromAnother(vWidgets);
向vector添加一个数据
vector添加数据的缺省方法是push_back()。push_back()函数表示将数据添加到vector的尾部,并按需要来分配内存。例如:向vector<Widget>中添加10个数据,需要如下编写代码:
for(int i= 0;i<10; i++) {
vWidgets.push_back(Widget(i));
}

再来看你说的vector<int> vec2[10];//vec2为一个数组,有10个vector<int>元素
for(int i = 0; i < 10;++i)
{
vec2[i].push_back(i+1);
vec2[i].push_back(i+2);
...
}//懂没?
//输出
vector<int>Iterator iter = vec2[i].begin();
for(;iter != vec2[i].end();++iter)
{
cout << iter <<endl;
cout << *vec2[i].pop_back() <<