std :: map是C ++标准库中的一个类。它是一个已排序的关联容器,包含具有唯一键的键值对。搜索,删除和插入操作具有对数复杂性。地图通常实现为红黑树。
如何在不使用 auto 的情况下在 C++ 中循环遍历 unordered_map?
我试图循环遍历一个unordered_map,以查找它的任何值是否大于2。但是这种语法是错误的 unordered_map mp; 对于 (int i = 0; i < N; i++) { ...
我有一个std::map,其中键是一个指向具有priority()方法的类的指针,值只是一个int。映射有一个比较函数,可以通过优先级()来比较键,这是一个
find_if可以用来在std::map/std::unordered_map中查找键吗?
这是一个简单的程序,包括将一个元素添加到 std::unordered_map 中。但在添加之前,首先检查该密钥是否已经存在,如果存在则不要添加。 我的问题是...
我一直在尝试按以下方式插入一些键和值,但出现错误: 错误:没有匹配的构造函数来初始化“Edge” 我正在使用 C++17。 这是我的程序: #inc...
我一直在尝试按以下方式插入一些键和值,但出现错误:没有匹配的构造函数来初始化“Edge”。我正在使用 C++17: 这是我的程序: #inc...
std::map::operator[] 如何初始化值(尤其是基本类型)?
我正在做一个简单的地图程序,但最终提出了这个问题。 cplusplus.com 是这样说的: 存取元件 如果 k 与容器中元素的键匹配,则该函数返回对其
存储在 std::map/std::set 与存储所有数据后对向量进行排序
语言:C++ 我能做的一件事是分配一个大小为 n 的向量并存储所有数据 然后使用 sort(begin(),end()) 对其进行排序。不然我可以继续放 地图或集合中的数据已排序...
我对 std::map 和 std::unordered_map 的理解正确吗?
请考虑以下事项: 在 C++ 中,std::unordered_map 在插入过程中使用哈希函数来确定新插入元素的位置。 但是,std::map 不使用...
std::(unordered_)map 和 std::(unordered_)set 共享代码吗?
假设我关心二进制大小,我已经使用std::map,并且我需要一组。我可以使用 std::map,而不是使用 std::set。这有帮助吗,或者已经是通用代码了......
我正在尝试使用 std::map::find 方法通过某个键获取迭代器。但是,我得到了一些有效的迭代器,但与映射的键对应的对的第一个值在映射中不存在。这是...
我正在尝试在地图中插入对象,建议我使用指针,所以这是我的代码: #包括 #包括 #包括 类人 { 私人的: INT...
我正在尝试创建一个映射,其中键是 int,值是数组,如下所示: int 红色[3] = {1,0,0}; int 绿色[3] = {0,1,0}; int 蓝色[3] = {0,0,1}; std::map 颜色...
我有这样的结构: 结构体S_SWAP_TALK { S_TALK_INFO* pHomeTalk{}; S_AWAY_TALK* pAwayTalk{}; }; 而且,我有这个 std::map: std::map m_mapSwapTalks; 此刻...
这是我可以用 gcc 编译的代码: #包括 #包括 模板 类map_alloc { 民众: typedef std::size_t 大小类型; 类型定义...
使用 std::wstring_view 为映射定义 const std::wstring 键
我正在尝试使用 std::map 和 std::wstring 作为键来设置一个结构,并尝试使用一些语法 surgar 通过宏和 std::wstring_view 使键声明/定义变得容易(对于.. .
我需要检查 std::map 的数据,并删除其中一些。 我正在使用基于范围的“for”循环,如下所示: std::map 数据 { { 1, "name1" }, { 2, "name2&q...
我编写了一个示例代码来尝试检查 std::map 的开始项。 如果 std::map 的开始项匹配某些条件,我想将其从 std::map 中删除。 然后,我希望 std::map 会在...之后对元素进行排序
如何在 C++ for range 循环中 const 引用对象
在下面的代码中,[id, name]是一个const引用。然而,studentMap 是非常量的。用户可以在循环中更改studentMap的值。 我想问有没有办法制作
如何使用 std::map 将字符串向量更改为另一个字符向量?
我正在尝试制作一个解码器,您可以在其中输入包含北约语音字母表的单词,并让它最终吐出翻译后的句子,只有实际的“切换器”不是
begin() 的恒定复杂度要求对于 std::map 来说是否过于严格?
std::map 满足容器的要求([map.overview] p2)。 容器需要满足以下条件: b.begin() 结果:迭代器;常量 b 的 const_iterator。 返回: 引用 ... 的迭代器