如果我需要使用引用,那么替代方法是什么,而我传递的数据我无法更改类型,因此我无法真正存储指向它的指针?
#include <map>
#include<iostream>
#include<string>
using namespace std;
int main()
{
string test;
pair<string, string> p=pair<string, string>("Foo","Bar");
map<pair<string, string>, string&> m;
m[make_pair("aa","bb")]=test;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
$ g ++ MapPair.cpp /usr/include/c++/3.2.3/bits/stl_map.h:在std :: string&'MapPair.cpp的实例化中 :在函数std :: map,std :: string&,std :: less >, std :: allocator, std :: string&>>>&[std :: pair]'operator /usr/include/c++/3.2.3/bits/stl_pair.h:在全局范围:/ usr/include/c ++ /3.2.3/bits/stl_pair.h:在std :: _ Rb_tree_node的 实例化中
std::map<std::pair<std::string, std::string>, std::string&, std::less<std::pair<std::string, std::string> >, std::allocator<std::pair<const std::pair<std::string, std::string>, std::string&> > >': MapPair.cpp:15:
instantiated from here /usr/include/c++/3.2.3/bits/stl_map.h:221: forming reference to reference type …