读书人

关于STL迭代器访问非const成员函数的有

发布时间: 2013-04-20 19:43:01 作者: rapoo

关于STL迭代器访问非const成员函数的问题,求众大神。
本帖最后由 iLeoDo 于 2013-04-12 21:35:14 编辑 现在有一个class A,里面包含成员函数void push() (非const)
现在创建一个set<A>, 用迭代器去遍历它,怎样才能让每一个A对象都调用一次push()呢?


for (si=index.begin(); si!=index.end(); si++) {
si->push(code); //这个会被报错。。
}

[解决办法]
这个没问题啊, 你用的什么编译器哦?

col1.insert(*new A(3));
col1.insert(*new A(4));
col1.insert(*new A(5));

这里内存泄漏了哦, 直接 col1.insert(A(3)); 就可以了.
[解决办法]
为啥要报错?因为set中key和value二合一了, key显然是只读的,所以set中的对象是只读的,懂了吧?
[解决办法]
引用:
引用:为啥要报错?因为set中key和value二合一了, key显然是只读的,所以set中的对象是只读的,懂了吧?
也就是说set中的对象只读?

是的。 变通的办法:set<T>改成 set<T*>

读书人网 >C++

热点推荐