std :: map是C ++标准库中的一个类。它是一个已排序的关联容器,包含具有唯一键的键值对。搜索,删除和插入操作具有对数复杂性。地图通常实现为红黑树。
C++ STD ::map<std::string, AnyType>找到一系列部分匹配的字符串
我有一个带有以下项目键的std::map<std::string, AnyType>
我有一个 std::map ,其中 uint32_t 作为键类型和自定义值类型。我想根据值类型的成员从该映射中挑选出前 k 个键值对。为此,我首先是警察...
如何将元素从 std::map 移动到 std::vector
我有一个 std::map ,其中包含一堆键值对。我想将这些元素移动到 std::vector 中。我尝试使用 std::transform from 来执行此操作,但它不起作用。这里...
我想将键值对插入到 std::map 中,其中 uint32_t 作为键类型,值的自定义类型。根据std::map的文档,我编写了以下代码: #包括 我想将键值对插入到 std::map 中,其中 uint32_t 作为键类型和值的自定义类型。根据std::map的文档,我编写了以下代码: #include <cstdint> #include <iostream> #include <map> struct Values { uint32_t a = 0; uint32_t b = 0; Values(uint32_t _x, uint32_t _y): a(_x), b(_y) { std::cout << __func__ << "(" << _x << ", " << _y ")" << std::endl; } }; int main() { std::map<uint32_t, Values> data; for(uint32_t i = 0; i < 100; i++) data.emplace(i, std::forward_as_tuple(i, i)); return 0; } 我正在通过运行 gcc 来编译代码 gcc -O3 -std=c++23 -Wconversion -Wall -Wextra -Wpedantic -fanalyzer 但是,此代码无法编译。 这是编译器资源管理器的链接,您可以在其中查看gcc的完整输出。 gcc 正在抱怨: error: no matching function for call to 'construct_at(std::pair<const unsigned int, Values>*&, unsigned int&, std::tuple<unsigned int&, unsigned int&>)' 为什么我会收到此错误以及如何修复此错误? 尝试指定std::piecewise_construct(请参阅https://en.cppreference.com/w/cpp/utility/tuple/forward_as_tuple中的示例),例如: m.emplace(std::piecewise_construct, std::forward_as_tuple(i), std::forward_as_tuple(i, i));
我可以使用 std::map 值动态更改结构体的成员变量吗?
有一个结构体,其成员变量为const char*。 typedef 结构 WWCryptoAuthorizationHeader { 年龄; const char *名称; const char *地址; } 学生信息; 我可以吗
我的遗留代码使用红黑树来存储指向同类(通常是 POD)对象的指针。 让我们调用一个 MyPod。 我的比较函数根据任何内容比较指向两个此类对象的指针...
c++ std::map::emplace() 不起作用,但operator[] 可以
#包括 #包括 #包括 #包括 #包括 #包括 使用命名空间 std; // 活跃链表 斯特...
具有 unique_ptr std 映射的单例类在编译时抛出错误
以下代码无法编译,我无法弄清楚为什么! /* ------------------------------------------------ --------------- */ /* 包括 */ #包括 #包括...
使用 `struct` 而不是 `std::pair` 迭代 `std::map`
很长一段时间以来,我一直想用结构而不是 std::pair 来迭代 C++ 映射。原因是我总是发现pair.first和pair.second是不明确的 所以我尝试了这段代码: 地图<
为什么 const std::pair& 的 .second 引用返回第二个值的副本而不是 const 引用?
我正在尝试获取指向 std::map 中每个值的 const 指针。我尝试了 constpair<...>& 及其 .second 属性,但得到了错误的指针。然而,const_ierator 是正确的。 一块...
从 std::map() 获取具有 unique_ptr 成员的对象
我试图从 std::map (之前填充的)获取一个类对象(带有 unique_ptr 成员),并且发生错误。这是代码: 类.hpp #ifndef CLASSMETHODNOTCALLED_CLASSES_HPP #定义
在 std::map() 中使用智能指针时调用隐式删除的复制构造函数
我试图将类对象放入 std::map 中,并且发生错误。这是代码: 类.hpp #ifndef CLASSMETHODNOTCALLED_CLASSES_HPP #define CLASSMETHODNOTCALLED_CLASSES_HPP #包括&q...
c++11 std::map 包含大量元素不起作用。此外,我需要使用 upper_bound 函数,但插入函数卡住了
好吧,我需要你们的帮助..我正在与 c++11 中的 std::map 作斗争,因为我需要在 for 循环期间存储两个以上的输出。为了更清楚,我应该使用这样的东西: std::地图&...
我一直在尝试使用 extract() 有效地取出密钥并替换它,正如文档所说是可能的。但是,我无法使用“常规”迭代器来编译我的代码,...
C++ 序列容器 (向量、forward_list、列表和双端队列) 都有一个分配方法。 例如, std::vector 有 (引用 cppreference.com): void 分配( size_type count, const T& v...
下面的测试代码片段(CHECK 是来自测试框架的宏,工作正常): typedef std::map M; typedef M::value_type VT; 常量 VT v0; 毫米; 检查(mm.begin() == mm.insert(v0)...
数据结构要求 设计一个支持以下操作的数据结构: 插入:插入键值对。 删除:删除键值对。 检查 Top K:给定一个整数 k a...
在 C++ 中的 std::map 中查找范围边界 `[x,y]` 中存在的最近的键
我需要在给定范围 [x,y] 内找到地图中最近的键。我正在尝试下面 std::map m{ {-2,'B'}, {1, 'C'}, {2, 'A'}}; auto itCurrent = m.lower_bound(-3); 自动下一个 = m.
在 C++ 中的 std::map 中查找存在于“查询范围”中的 Key 范围
如何查找某个范围内是否有任何键。我正在尝试以下: 目标是在查询范围[-3,3]内获得-2和2作为关键边界范围(地图中实际存在的) 标准::地图<...