gpt4 book ai didi

c++ - std::map 中的 std::pair 作为 const 返回

转载 作者:太空宇宙 更新时间:2023-11-04 16:00:45 25 4
gpt4 key购买 nike

我的示例代码是

class A
{
int a = 0;
public:
void setA(const int value)
{
a = value;
}
};

std::map<std::string, std::set<A>> Map{{"A", {}}};
Map.rbegin()->second.rbegin()->setA(2);

我收到以下错误:“成员函数‘setA’不可行:‘this’参数的类型为‘const A’,但函数未标记为 const”

我的问题是为什么 rbegin() 返回一个指向 A 的 const 指针?或者为什么 std:pair 的第二个是 std::map 中的常量?

最佳答案

所有 std::set 元素都以 const 方式公开。那是因为它们既是键又是值,如果您随意修改键,那么您就会破坏集合中的树结构。

It is currently not possible to directly modify set elements .您将必须移除然后重新插入。

(与封装图无关)

关于c++ - std::map 中的 std::pair 作为 const 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44969048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com