V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Dreammilk
V2EX  ›  C++

c++的 map 问题

  •  
  •   Dreammilk · 329 天前 · 1882 次点击
    这是一个创建于 329 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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";
    }
    

    }

    10 条回复    2021-01-03 11:38:31 +08:00
    qianlv7
        1
    qianlv7   329 天前
    Dreammilk
        2
    Dreammilk   329 天前
    @qianlv7 那在 c++11 中判断关键字只能使用 find 或者 count 两种方法了吗
    zwy100e72
        3
    zwy100e72   329 天前
    #2 是的
    YouLMAO
        4
    YouLMAO   329 天前 via Android
    这不是红黑树么,contain 不给你也是合理的
    irytu
        5
    irytu   329 天前 via iPhone
    @YouLMAO 这个 contain 跟底层数据结构有关系吗,contain 查找也是遍历吧
    clrss
        6
    clrss   329 天前
    自己写个模版函数包装一下..
    YouLMAO
        7
    YouLMAO   329 天前 via Android
    @irytu 啊啊啊啊啊,红黑树,二分查找,unorderedmap 的话哈希

    没有一个是遍历
    irytu
        8
    irytu   329 天前 via iPhone
    @YouLMAO hh sorry 引起歧义 其实我意思也是查找 or 搜索,我习惯说遍历而已,只是有点疑惑你说的行为“不给你结果” 跟二叉树搜索的关系
    lovestudykid
        9
    lovestudykid   329 天前
    你拼写错了..试了使用最新版的 gcc 能够编译
    g++ -std=c++2a
    typetraits
        10
    typetraits   328 天前 via iPhone
    libc++中 contains()就实现为 find(xxx) != end(),libstdc++就不清楚了
    所以直接用 find 就可以了
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1001 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 20:35 · PVG 04:35 · LAX 12:35 · JFK 15:35
    ♥ Do have faith in what you're doing.