如何确定一个映射是否包含给定值?
How can I find out if a map contains a given value?
我想知道给定的值是否存在于映射中。获得相应的键也会很好,但不是必需的。
bool map::contains(string value);
除了迭代整个映射并将每个值与给定值进行比较之外,是否有一种简单的方法可以做到这一点?为什么STL中没有相应的方法?
std::map
仅按键索引其元素;它不按值对它们进行索引。因此,如果不遍历映射,就无法根据元素的值查找元素。
看看Boost。Bimap:
提振。Bimap是一个c++的双向映射库。与提升。Bimap可以创建关联容器,其中两种类型都可以用作键。
bimap<X,Y>
可以看作是std::map<X,Y>
和std::map<Y,X>
的组合。
使用它非常简单,尽管您当然需要考虑是否允许重复值的问题。
另外,参见是否有Boost。c++11中的bimmap替代方案?
相关文章:
- 是否需要删除包含对象的"pair"?
- 在CMake中使用find_package时,是否会显式包含标头
- C++-字符串是否包含一个带有简单循环的单词
- 我是否需要包含隐式使用/与 WindowsAPI 通信"Windows.h"?
- 表达式 SFINAE:如何根据类型是否包含具有一个或多个参数的函数来选择模板版本
- 检查一个数组是否包含在另一个数组中,以相反的顺序,至少两次
- 是否存在包含负号的isdigit函数(过载)
- 检查路径是否包含C++中的另一个路径
- C++ - 是否可以让子类按值包含包含类?
- C++17:使用 std::optional 来评估枚举是否包含值
- 在头文件上包含 cpp 文件是否有缺点?
- 如果包含映射的静态库与可执行文件和动态库链接,静态映射(变量)是否会被多次释放?
- 如何检查 int 变量是否包含合法(非陷阱表示)值?
- 如果我从流中提取某些内容,该流是否不再包含我提取的内容?
- 如何确定integer_sequence在编译时是否包含给定的数字?
- 使用预处理指令检查是否包含标头?
- 即使类不包含数据,C++ 14 是否仍会生成默认函数?
- 是否可以在 Xcode C++项目中包含框架?
- 程序检查字符串是否只包含 1 和 0?
- 有没有办法搜索向量的元素,<String>然后检查它是否包含特定的字符,如果它确实打印了它