我需要这样的地图:
typedef std::map<int, float , char> Maptype ;
Run Code Online (Sandbox Code Playgroud)
在此映射中插入和搜索pair的元素的语法是什么.
ken*_*ytm 14
A map只能将一种密钥类型映射到一种数据类型.如果数据包含2个元素,请使用结构或a std::pair.
typedef std::map<int, std::pair<float, char> > Maptype;
...
Maptype m;
m[123] = std::make_pair(0.5f, 'c');
...
std::pair<float, char> val = m[245];
std::cout << "float: " << val.first << ", char: " << val.second << std::endl;
Run Code Online (Sandbox Code Playgroud)
你不能有三个要素.STL map存储键值对.您需要决定将要用作关键字的内容.完成后,您可以将其他两个嵌套在一个单独的地图中,并将其用作:
typedef std::map<int, std::map<float, char> > MapType;
Run Code Online (Sandbox Code Playgroud)
要在地图中插入,请使用operator[]或insert成员函数.您可以搜索使用find成员函数.
MapType m;
// insert
m.insert(std::make_pair(4, std::make_pair(3.2, 'a')));
m[ -4 ] = make_pair(2.4, 'z');
// fnd
MapType::iterator i = m.find(-4);
if (i != m.end()) { // item exists ...
}
Run Code Online (Sandbox Code Playgroud)
另外你可以看看Boost.Tuple.
使用其中之一
std::map<std::pair<int, float>, char>
Run Code Online (Sandbox Code Playgroud)
要么
std::map<int, std::pair<float, char> >
Run Code Online (Sandbox Code Playgroud)
哪个是正确的.