- 论坛徽章:
- 0
|
多谢!以前看的时候只读了前半部分 :)
现在
改成转化到引用,修改不影响关联顺序的部分,编译通过了。
- const_cast<MC&>(*it).l.push_back(100);
复制代码
又有个新问题了:
- //debug
- std::cout<<"----- debug -----\n"
- it = find( mcset.begin(), mcset.end(), 3); //set<mc>::iterator it
- list<int>& nl = it->l;
- list<int>::iterator nit;
- for( nit=nl.begin(); nit!=nl.end(); nit ++)
- std::cout << *nit << std::endl;
复制代码
编译错误:
conversion from 'const std::list<int, std::allocator<int> >' to 'std::list<int, std::allocator<int> >&' discard qualifiers
如果:
- //debug
- std::cout<<"----- debug -----\n"
- it = find( mcset.begin(), mcset.end(), 3); //set<mc>::iterator it
-
- list<int>::iterator nit;
- for( nit=it->l.begin(); nit!=it->l.end(); nit ++)
- std::cout << *nit << std::endl;
复制代码
编译错误:
stest.cpp: In function `int main()':
stest.cpp:54: no match for `std::_List_iterator<int, int&, int*>& =
std::_List_iterator<int, const int&, const int*>' operator
/usr/include/c++/3.2.2/bits/stl_list.h:115: candidates are:
std::_List_iterator<int, int&, int*>& std::_List_iterator<int, int&,
int*>:perator=(const std::_List_iterator<int, int&, int*>&
[ 本帖最后由 andyY 于 2006-5-26 17:43 编辑 ] |
|