C++中的vector如何实现二维?

来源:百度知道 编辑:UC知道 时间:2024/06/22 10:53:08
如题。。。
在C++中二维的数组可以很容易的实现
C++primer中介绍数组时提到基于内置数组的程序易出错,建议用vector代替,那么请问怎样用一个二维的vector来代替二维的数组呢

又:vector<int> ivec1(3);
vector<ivec1> ivec2d(3);
编译不会通过
提示:error C2974: 'vector' : invalid template argument for '_Ty', type expected
请指教。。。

你哪个错误原因在:

vector<ivec1> ivec2d(3);

<>里面是个类型

而ivec1只是个对象 应该改为:vector<vector<int> > ivec2d

在顺便贴个转换的例子:

#include "stdafx.h"

#include <vector>

#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{

int arrby[5][5]={{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}};

vector<int> clildrec(5);

vector<vector<int> > rec;

for(int i=0;i<5;i++)

{

vector<int> clildrec(*(arrby+i),*(arrby+i)+5);

rec.push_back(clildrec);

}//这个就完成了2维数组到vector的复制;

vector<vector<int> >::iterator iter=rec.begin();

vector<int>::iterator clilditer;

while(iter!=rec.end())

{

clilditer=iter->begin();