c++的 map 问题

2021-01-02 17:09:43 +08:00
 Dreammilk

c++中 map.contrains 函数有人用过吗
在使用时显示不存在此方法,难道是 c++版本不对

#include <iostream> #include <map>

int main() { std::map<int,char> example = {{1,'a'},{2,'b'}};

if(example.contains(2)) {
    std::cout << "Found\n";
} else {
    std::cout << "Not found\n";
}

}

2647 次点击
所在节点    C++
10 条回复
qianlv7
2021-01-02 17:12:51 +08:00
Dreammilk
2021-01-02 17:19:07 +08:00
@qianlv7 那在 c++11 中判断关键字只能使用 find 或者 count 两种方法了吗
zwy100e72
2021-01-02 18:22:01 +08:00
#2 是的
YouLMAO
2021-01-02 18:50:54 +08:00
这不是红黑树么,contain 不给你也是合理的
irytu
2021-01-02 21:13:32 +08:00
@YouLMAO 这个 contain 跟底层数据结构有关系吗,contain 查找也是遍历吧
clrss
2021-01-02 21:23:54 +08:00
自己写个模版函数包装一下..
YouLMAO
2021-01-02 21:34:41 +08:00
@irytu 啊啊啊啊啊,红黑树,二分查找,unorderedmap 的话哈希

没有一个是遍历
irytu
2021-01-02 22:28:54 +08:00
@YouLMAO hh sorry 引起歧义 其实我意思也是查找 or 搜索,我习惯说遍历而已,只是有点疑惑你说的行为“不给你结果” 跟二叉树搜索的关系
lovestudykid
2021-01-02 22:37:30 +08:00
你拼写错了..试了使用最新版的 gcc 能够编译
g++ -std=c++2a
typetraits
2021-01-03 11:38:31 +08:00
libc++中 contains()就实现为 find(xxx) != end(),libstdc++就不清楚了
所以直接用 find 就可以了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/741065

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX