利用c++中的vector创建动态二维数组
vector<int> myVector;
for(vector<int>::size_type i = 0; i < 6 ;i++)
{
myVector.push_back(i);
if(i == 5)
{
i = i+1;
myVector.push_back(i);
}
}
如何把这个程序扩展到2维? 展开
vector为C++中的一个容器类,其功能相当于动态数组。使用vector需要包含头文件vector。
vector的常用操作:
1. v.push_back(t) 在容器的最后添加一个值为t的数据,容器的size变大。
另外list有push_front()函数,在前端插入,后面的元素下标依次增大。
2. v.size() 返回容器中数据的个数,size返回相应vector类定义的size_type的值。
3. v.empty() 判断vector是否为空
4. v[n] 返回v中位置为n的元素
5. v.insert(pointer,number, content) 向v中pointer指向的位置插入number个content的内容。
6. v.pop_back() 删除容器的末元素,并不返回该元素。
7.v.erase(pointer1,pointer2) 删除pointer1到pointer2中间(包括pointer1所指)的元素。
8. v1==v2 判断v1与v2是否相等。
9. !=、<、<=、>、>= 保持这些操作符惯有含义。
10. vector<typeName>::iterator p=v1.begin( ); p初始值指向v1的第一个元素。*p取所指向元素的值。
11. p=v1.end( ); p指向v1的最后一个元素的下一位置。
12.v.clear() 删除容器中的所有元素。12.v.clear() 删除容器中的所有元素。
若要用vector实现二维动态数组,可用vector作模板类型参数:
vector<vector<int> > arr;
这样扩展行吧?没试过,不知道行不行
#include<iostream>
#include<vector>
using namespace std;
int main()
{ vector<int>vec;
vector<vector<int> >v_vec;
int x;
for(int j=0;j<3;j++)
{
for(int i=0;i<4;i++)
{
cin>>x;vec.push_back (x);
}
v_vec.push_back (vec);
vec.clear ();
}
cout<<v_vec.size ()<<endl;
return 0;
}
貌似可以,但是我不知道怎么访问。