首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >指向地图的指针

指向地图的指针
EN

Stack Overflow用户
提问于 2011-09-20 17:23:23
回答 5查看 30.3K关注 0票数 18

如果我像这样定义一个指向map的指针:

代码语言:javascript
运行
复制
map<int, string>* mappings;

mappings是一个指针。我应该如何使用这个指针来操作地图?

EN

回答 5

Stack Overflow用户

发布于 2011-09-20 17:29:23

除了必须使用->来访问map成员之外,没有太大的区别。即

代码语言:javascript
运行
复制
mapping->begin() or mapping->end()

如果你对此感到不舒服,那么你可以为它赋值一个引用,并以自然的方式使用它:

代码语言:javascript
运行
复制
map<int, string> &myMap = *mappings;  // 'myMap' works as an alias
                ^^^^^^^^

使用myMap就像您通常使用它一样。即

代码语言:javascript
运行
复制
myMap[2] = "2";
myMap.begin() or myMap.end();
票数 5
EN

Stack Overflow用户

发布于 2011-09-20 17:31:08

例如:

代码语言:javascript
运行
复制
#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;
}
票数 2
EN

Stack Overflow用户

发布于 2020-11-09 23:54:30

随着c++ 11中"at"函数的引入,您可以使用mappings->at(key)代替(*mapping)[key]

请记住,如果密钥在映射中不可用,此接口将抛出out_of_range异常。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7482888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档