如果我像这样定义一个指向map的指针:
map<int, string>* mappings;mappings是一个指针。我应该如何使用这个指针来操作地图?
发布于 2011-09-20 17:29:23
除了必须使用->来访问map成员之外,没有太大的区别。即
mapping->begin() or mapping->end()如果你对此感到不舒服,那么你可以为它赋值一个引用,并以自然的方式使用它:
map<int, string> &myMap = *mappings; // 'myMap' works as an alias
^^^^^^^^使用myMap就像您通常使用它一样。即
myMap[2] = "2";
myMap.begin() or myMap.end();发布于 2011-09-20 17:31:08
例如:
#include <map>
#include <string>
#include <iostream>
int main() {
std::map<int, std::string> * mapping = new std::map<int, std::string>();
(*mapping)[1] = "test";
std::cout << (*mapping)[1] <<std::endl;
}发布于 2020-11-09 23:54:30
随着c++ 11中"at"函数的引入,您可以使用mappings->at(key)代替(*mapping)[key]。
请记住,如果密钥在映射中不可用,此接口将抛出out_of_range异常。
https://stackoverflow.com/questions/7482888
复制相似问题