利用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创建动态二维数组的主要内容,如果未能解决你的问题,请参考以下文章

C++ vector 动态二维数组 长度不一样 实例

JAVA中Vector怎样存放一个动态的二维数组

动态创建二维数组

动态创建二维vector数组+指针与引用的区别

c++中的new()申请二维数组

指向 C++ 中动态分配的二维数组中的一行的指针