迭代器输出解决方法
迭代器输出
比如说定义一个这样的二维vector
vector<vector<string> >Andl;
vector<string>and_l;
现在输出最外层循环是这样定义的是
vector<vector<string> >::iterator IBegin = (*It).Andl.begin() +nCount;
nCount += is_begin->n_andl;
vector<vector<string> >::iterator IEnd = (*it).Andl.begin()+nCount;
???????
列数是4
请问这个内层循环怎么写啊。。
------解决方案--------------------
给你写了一段代码,希望有参考意义。
比如说定义一个这样的二维vector
vector<vector<string> >Andl;
vector<string>and_l;
现在输出最外层循环是这样定义的是
vector<vector<string> >::iterator IBegin = (*It).Andl.begin() +nCount;
nCount += is_begin->n_andl;
vector<vector<string> >::iterator IEnd = (*it).Andl.begin()+nCount;
???????
列数是4
请问这个内层循环怎么写啊。。
------解决方案--------------------
给你写了一段代码,希望有参考意义。
- C/C++ code
typedef std::vector<int> VEC_INT; typedef std::vector<VEC_INT> VEC_VEC_INT; void Print(const VEC_INT& vec); void Print(const VEC_VEC_INT& vec); int _tmain(int argc, _TCHAR* argv[]) { VEC_INT vec_a(5, 1); VEC_INT vec_b(5, 2); VEC_INT vec_c(5, 3); VEC_INT vec_d(5, 4); VEC_INT vec_e(5, 5); VEC_VEC_INT vec_vecInt; vec_vecInt.push_back(vec_a); vec_vecInt.push_back(vec_b); vec_vecInt.push_back(vec_c); vec_vecInt.push_back(vec_d); vec_vecInt.push_back(vec_e); Print(vec_vecInt); return 0; } void Print(const VEC_INT& vec) { for (VEC_INT::const_iterator iter = vec.begin(); iter != vec.end(); iter++) { cout << *iter << "\t"; } cout << endl; } void Print(const VEC_VEC_INT& vec) { for (VEC_VEC_INT::const_iterator iter = vec.begin(); iter != vec.end(); iter++) { Print(*iter); }
------解决方案--------------------
vector<string>::iterator ite_beg= IBegin->begin();
vector<string>::iterator ite_end= IBegin->end();
------解决方案--------------------
typedef vector<vector<string> > VecVecString;
typedef vector<string> VecString;
for (VecVecString::iterator it_1 = Andl.begin(); it_1 != Andl.end(); ++it_1)
{
VecString and1 = *it;
for (VecString::it_2 = and1.begin(); it_2 != and1.end(); ++it_2)
{
//do something
}
}