Viv*_*vit 1 c++ stdmap unique-ptr c++11 c++14
我的问题很简单.我google了很多,但不知怎的,我无法弄明白.我使用的是C++ std::map有std::unique_pointer这样的:
std::unique_ptr<std::map<int,std::string>> my_map( new std::map<int,std::string>());
Run Code Online (Sandbox Code Playgroud)
现在,我想使用[]地图的访问运算符.但我总是遇到编译器错误.
my_map[1] = "XYZ"; // error C2676
my_map->[1] = "XYZ"; // error C2059
Run Code Online (Sandbox Code Playgroud)
如果没有std::unique_ptr,我的代码将如下所示,并且它的工作原理.但是我如何做同样的事情std::unique_ptr呢?请帮我.
std::map<int,std::string> my_map;
my_map[1] = "XYZ"; // OK!
Run Code Online (Sandbox Code Playgroud)
现代C++是受欢迎的,甚至是期望的.
For*_*veR 11
手动调用操作员功能
my_map->operator[](1)
Run Code Online (Sandbox Code Playgroud)
或取消引用指针和调用 operator []
(*my_map)[1]
Run Code Online (Sandbox Code Playgroud)