所以,我試圖建立一個二維矢量,它將保存從瓷磚中選擇瓷磚的索引。迭代器和多維向量?
在一名維迭代器是很簡單:
std::vector<int> vec;
std::vector<int>::iterator vec_it;
for(int i=5; i>0; --i){
vec.push_back(i); }
//prints "5 4 3 2 1 "
for(vec_it = vec.begin(); vec_it != vec.end(); ++vec_it){
std::cout<<*vec_it<<' ';
}
不過,我添加第二個維度時運行陷入困境。下面是不工作代碼:
std::vector<std::vector<int> > vec(5);
std::vector<std::vector<int> >::iterator vec_it;
std::vector<int>::iterator inner_it;
for(int i=0; i<5; ++i){
vec[i].assign(5, 0);
}
for(vec_it = vec.begin(); vec_it != vec.end(); ++vec_it){
for(inner_it = *vec_it->begin(); inner_it != *vec_it->end(); ++inner_it){
std::cout<<*inner_it<<' ';
}
std::cout<<std::endl;
}
//should print:
//0 0 0 0 0
//0 0 0 0 0
//0 0 0 0 0
//0 0 0 0 0
//0 0 0 0 0
編譯失敗與一個幾乎不可理解的錯誤,我嘗試做inner_it = *vec_it->begin()
,所以我想我的問題是,如何厲害爲什麼我搞砸了?
嗯,我放心,這是一個簡單的錯誤,至少。謝謝。 – SubIgnition 2010-07-09 20:43:37