c – 在只读结构中分配数据成员,STL集中的类
发布时间:2020-12-16 06:02:06 所属栏目:百科 来源:网络整理
导读:我遇到的问题的最小例子如下: #include setusing namespace std;class foo {public: int value,x; foo(const int in_v) { value = in_v; x = 0; } bool operator(const foo rhs) const { return value rhs.value; }};int main() { foo y(3); setfoo F; F.in
我遇到的问题的最小例子如下:
#include <set> using namespace std; class foo { public: int value,x; foo(const int & in_v) { value = in_v; x = 0; } bool operator<(const foo & rhs) const { return value < rhs.value; } }; int main() { foo y(3); set<foo> F; F.insert(y); // Now try to modify a member of the set F.begin()->x=1; return 0; } 使用错误错误:在只读结构中分配数据成员’foo :: value’.我觉得我在这里缺少一些简单的东西,但为什么我无法修改我的课程中的成员x? 解决方法
一组中的对象是不可变的;如果要修改对象,则需要:
>从集合中创建对象的副本, 它看起来像这样: std::set<int> s; s.insert(1); int x = *s.begin(); // (1) x+= 1; // (2) s.erase(s.begin()); // (3) s.insert(x); // (4) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |