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

时间:2017-12-26 19:57:02

标签: c++ c++11 set visual-c++-2017

#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:&#39; std :: _ Tree&gt; :: insert&#39;:5个重载没有合法转换为&#39;这个&#39;指针。

编译器i.second认为

const是禁止插入的。

如果不是错误,我该如何操纵呢?

1 个答案:

答案 0 :(得分:0)

  

如果不是错误,我该如何操纵呢?

您无法更改已插入std::set的值,因为数据已订购,修改会使不变量无效。您需要删除/修改/重新插入或使用与std::set

不同的容器