C++中STL迭代器相关

大家好,小弟在用STL的时候,遇到了这样几个问题,希望高手可以帮忙下,十分急,高分送上!!我有一个程序题的题目要求是:从文件中读入矩阵,运用vector<vector<T... 大家好,小弟在用STL的时候,遇到了这样几个问题,希望高手可以帮忙下,十分急,高分送上!!

我有一个程序题的题目要求是:从文件中读入矩阵,运用vector< vector< T > >把文件中的矩阵放到vector中,
我的基类定义是这样的

template< class T >
class Matrix_B
{

protected:

string FileInp;

string FileOut;

unsigned int RowSize,
ColSize;

vector< vector< T > > pMatrix;

public:
Matrix_B( unsigned int nrow = 2,
unsigned int ncol = 2,
string FileInp = "matrix.in",
string FileOut = "matrix.out" );

void ReadMatrix( void );

void PrintMatrix( char *pHeader = "" );
};

1)第一个问题:
我在构造函数中用下列语句声明了二维vector ,pMatrix[*][*]全部为零,
pMatrix.resize ( RowSize );
for( unsigned int IxRow=0 ; IxRow < RowSize ; IxRow++ )
pMatrix[ IxRow ].resize( ColSize );
但是我们老师希望我在这断语句之后再用迭代器,显示的给这个矩阵的每个元素赋值为零,我于是这样
for(vector< vector< T > >::iterator iter=pMatrix.begin(),iter!=pMatrix.end();iter++)
*iter=0;
但是编译报错,不知道应该怎么办?
展开
 我来答
百度网友fefbf9e
2010-05-12 · TA获得超过1364个赞
知道小有建树答主
回答量:176
采纳率:0%
帮助的人:103万
展开全部
你在这里只迭代了一层,*iter的类型为vector< T > ,所以会错,你还需要对*iter再迭代一次

for(vector< T > ::iterator in_iter=(*iter).begin(),in_iter!=(*iter).end();in_iter++)
*in_iter=0;

另外,提醒一下,有编译错误的时候,最好把编译器提示一起贴出来,这样回答也容易些
TableDI
2024-07-18 广告
当我们谈到Python与Excel的拆分时,通常指的是使用Python的库来读取Excel文件中的数据,然后根据某种逻辑(如按行、按列、按特定值等)将数据拆分成多个部分或输出到新的Excel文件中。上海悉息信息科技有限公司在处理这类任务时,... 点击进入详情页
本回答由TableDI提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式