我已经定义了一个动态内存作为*索引(向量矢量)来存储一组值。然后,我附加了这个记忆。之后,我想获得这些值的打印。为此,我正在使用另一个功能,如下所示。对于那个函数,我通过引用调用上面的值。我不知道使用迭代器打印这些值的正确方法。 这是我的代码和我得到的错误。如何使用“迭代器”进行引用调用?
vector< vector<unsigned int> >* indexs = new vector< vector<unsigned int> >(9);
for(){ //finish data adding into indexs }
calcParameter(*indexs); //call function
void myclass::calcParameter(vector< vector<unsigned int> >const &indexs){
vector< vector<unsigned int> > :: iterator cell_i;
for (cell_i=indexs->begin(); cell_i != indexs->end();cell_i++){ //this is line 305 in my program
vector<unsigned int> :: iterator pij;
for (pij=cell_i->begin(); pij =! cell_i->end(); pij++){
cout<<" "<<*pij;
}
cout<<endl;
}
}
error message: 305-base operand of `->' has non-pointer type `const
std::vector<std::vector<unsigned int, std::allocator<unsigned int> >,
std::allocator<std::vector<unsigned int, std::allocator<unsigned int> > > >'
当我使用简单的循环来获得它,它的工作原理,但我想学习如何使用迭代器。
void myclass::calcParameter(vector< vector<unsigned int> >const &indexs){
for (int i=0; i<indexs.size(); i++){
for (int j=0; j< indexs[i].size(); j++){
cout<<" "<<indexs[i][j];
}
cout<<endl;
}
}
任何帮助,请..
你的代码是完全不可读的,你很难理解。请尽量让它更清晰。 – 2011-05-29 16:57:46