您的位置:首页 > 编程语言 > C语言/C++

关于C++中vector<vector<int>>的个人理解

2017-05-09 19:49 423 查看
标准库模型vector表示对象的集合,其中所有对象的类型都相同。集合中每个对象都有一个与之对应索引,索引用于访问对象。

注:vector是模板而非类型,由vector生成的类型必须包含vector中元素的类型,如vector< int>

本文就自己对vector< vector< int>>的个人理解进行分享,不当之处欢迎大家指正。

这里有两种方法对vector< vector< int>>进行赋值:

1、采用vector模板中的方法push_back()

#include<iostream>
#include<vector>
using namespace std;

int main()
{
//array用来保存一个3*3的二维数组,array的每个元素都是vector<int>类型
vector <vector<int> >array;
std::vector<int> v;
for (int i = 0; i <3; i++){
for (int j = 0; j <3; j++){
int value;
cin >> value;
v.push_back(value);
}
array.push_back(v); //保存array的每个元素
v.clear();
}

for (int i = 0; i <array.size(); i++)
{
for (int j = 0; j <3; j++)
cout <<array[i][j];
cout<<endl;
}
return 0;
}


2、用分配空间的resize()函数

#include<iostream>
#include<vector>
using namespace std;

int main()
{
vector <vector<int> >array(3);//首先给array开辟了三个空间
for (int i = 0; i <3; i++){
array[i].resize(3);//给array中每个元素开辟了三个空间
for (int j = 0; j <3; j++){
cin >> array[i][j];//直接对开辟的空间赋值即可
}
}
for (int i = 0; i <array.size(); i++)
{
for (int j = 0; j <3; j++)
cout <<array[i][j];
cout<<endl;
}
cout << array.size();
return 0;
}




方法1中是首先确定一个vector< int>类型对象,然后把它push_back()到array中去;方法2是用开辟空间的函数resize(),这样能直接当作数组进行赋值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: