C2663:'std :: _ Tree> :: insert':5个重载没有'this'指针的合法转换

问题描述 投票:0回答:1
#include <map>
#include <set>
using namespace std;
map <string, set<pair<int, set<int>>>> dictonary;

int s()
{
    for (auto & i : dictonary["abc"])
    {
        i.second.insert(2);  //error C2663
    }
}

C2663:'std :: _ Tree> :: insert':5个重载没有'this'指针的合法转换。

i.second被编译器const认为是合格的,因此禁止插入。

如果它不是一个bug,我怎么能操纵呢?

c++ c++11 set visual-c++-2017
1个回答
0
投票

如果它不是一个bug,我怎么能操纵呢?

您无法更改已插入std::set的值,因为数据已排序且修改会使不变量无效。您需要删除/修改/重新插入或使用不同于std::set的容器

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.