利用c++中的vector创建动态二维数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用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; 参考技术A vector<vector<int> >这样扩展行吧?没试过,不知道行不行
#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;
貌似可以,但是我不知道怎么访问。本回答被提问者和网友采纳
C++ vector 动态二维数组 长度不一样 实例
#include<iostream>
#include<vector>
using namespace std;
//目标就是完成二维vector的所有操作
int main(void)
vector<vector<int>> vec2; //二维数组的 vector 定义
// 构造一维的vector
vector<int> vec1;
vec1.push_back(1);
vec1.push_back(2);
// 将vec1插入到vec2中
vec2.push_back(vec1);
vec1.clear();
vec1.push_back(3);
vec2.push_back(vec1);
vec1.clear();
vec1.push_back(4);
vec1.push_back(5);
vec1.push_back(6);
vec2.push_back(vec1);
//打印“二维数组”,本处演示先按列打印
for(int i = 0; i < vec2.size(); ++i)
for(int j = 0 ; j< vec2[i].size(); ++j)
cout << vec2[i][j] << " ";
cout << endl ;
以上是关于利用c++中的vector创建动态二维数组的主要内容,如果未能解决你的问题,请参考以下文章