用vector创建的二维动态数组怎么用下标访问
用vector创建的二维动态数组如何用下标访问
int row = 2;
int col = 2;
int k = 0;
vector<vector<int> > array;
for(vector<vector<int> >::size_type i = 0;i<row;i++)
{
vector<int> line;
for(vector<int>::size_type j = 0;j<col;j++)
{
line.push_back(k);
//cout<<line[j]<<"\t";
if(j == 1)
{
line.push_back(k);
}
}
array.push_back(line);
}
如果使用迭代器访问我会:
for(vector<vector<int> >::iterator it = array.begin(); it != array.end();++it)
{
for(vector<int>::iterator inner_it = it->begin();inner_it != it->end();++inner_it)
{
cout<<*inner_it<<"\t";
}
}
但如何使用下标访问呢?
------解决方案--------------------
不要嵌套使用vector,效率太低。推荐boost.multiarray。
------解决方案--------------------
你push_back进去什么就打印什么呗
------解决方案--------------------
不要嵌套vector,二维的数组实际上就是一维的数组,按照一维的处理就可以,嵌套的vector效率低且不好用
------解决方案--------------------
int row = 2;
int col = 2;
int k = 0;
vector<vector<int> > array;
for(vector<vector<int> >::size_type i = 0;i<row;i++)
{
vector<int> line;
for(vector<int>::size_type j = 0;j<col;j++)
{
line.push_back(k);
//cout<<line[j]<<"\t";
if(j == 1)
{
line.push_back(k);
}
}
array.push_back(line);
}
如果使用迭代器访问我会:
for(vector<vector<int> >::iterator it = array.begin(); it != array.end();++it)
{
for(vector<int>::iterator inner_it = it->begin();inner_it != it->end();++inner_it)
{
cout<<*inner_it<<"\t";
}
}
但如何使用下标访问呢?
------解决方案--------------------
不要嵌套使用vector,效率太低。推荐boost.multiarray。
------解决方案--------------------
你push_back进去什么就打印什么呗
------解决方案--------------------
不要嵌套vector,二维的数组实际上就是一维的数组,按照一维的处理就可以,嵌套的vector效率低且不好用
------解决方案--------------------