我已經定義了一個動態內存作爲*索引(向量矢量)來存儲一組值。然後,我附加了這個記憶。之後,我想獲得這些值的打印。爲此,我正在使用另一個功能,如下所示。對於那個函數,我通過引用調用上面的值。我不知道使用迭代器打印這些值的正確方法。 這是我的代碼和我得到的錯誤。如何使用「迭代器」進行引用調用?
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