stdmap 相关问题

std :: map是C ++标准库中的一个类。它是一个已排序的关联容器,包含具有唯一键的键值对。搜索,删除和插入操作具有对数复杂性。地图通常实现为红黑树。

带有 std::map 初始化列表的构造函数

按照这个问题中不扩展 std 容器的建议,我正在创建自己的类型并使用 std::map 作为类属性。 我正在重新创建我想要的公共接口函数...

回答 1 投票 0

如何创建一个可以保存两种不同类型的映射值的映射?

我面临一个问题,需要为 ros2 的 topic_name 和 msgs 制作一个 std::map,例如 // 这里的问题是,如何声明 std::map,即 ref_maps; 标准::地图 我面临一个问题,需要为 ros2 的 topic_name 和 msgs 制作一个 std::map,例如 // here is the question, how to declare the std::map, i.e. ref_maps; std::map<std::string, std::tuple<SomeUncertainType, AnotherUncertainType>> ref_maps; // one type msgType1 msg1_t; // = ...with some value assigned; msgType1::SharedPtr msg1_p; //-> ...with some value assigned, and notice, here is a SharedPtr std::string topic_name1 = "t1" // another type msgType2 msg2_t; msgType2::SharedPtr msg2_p; std::string topic_name1 = "t2" ref_maps[t1] = std::make_tuple(msg1_t, msg1_p); ref_maps[t2] = std::make_tuple(msg2_t, msg2_p); 这是否可能或任何其他方法可以实现类似的结果? 与某些基类不同的是 ros2 msgTypes( 和 ::SharedPtr) ,这样我就可以声明 ref_maps ,如下所示: std::map<std::string, std::tuple<MsgTypeBase, MsgTypePtrBase>> ref_maps; 如果需要使用一个类,该类的实例在任何给定时间都保存一种类型的值或其替代值(前提是它们已知),则标准解决方案是std::variant。 它本质上代表了一个类型安全的联合,它提供了一组成员和非成员函数,使一种类型和另一种类型之间的切换更简单。此外,值始终是静态分配的,避免了动态分配的内存和性能开销。 std::map<std::string, std::pair<std::variant<T1, T2>, std::variant<T1, T2>>>; 如果可能的类型对只有(T1,U1),(T2,U2),则可以按以下方式修改定义。 std::map<std::string, std::variant<std::pair<T1, U1>, std::pair<T2, U2>>>;

回答 1 投票 0

如何使用不同类型的ros2 msg制作topic_name(std::string)的std::map?

我面临一个问题,需要为 ros2 的 topic_name 和 msgs 制作一个 std::map,例如 // 这里的问题是,如何声明 std::map,即 ref_maps; 标准::地图 我面临一个问题,需要为 ros2 的 topic_name 和 msgs 制作一个 std::map,例如 // here is the question, how to declare the std::map, i.e. ref_maps; std::map<std::string, std::tuple<SomeUncertainType, AnotherUncertainType>> ref_maps; // one type msgType1 msg1_t; // = ...with some value assigned; msgType1::SharedPtr msg1_p; //-> ...with some value assigned, and notice, here is a SharedPtr std::string topic_name1 = "t1" // another type msgType2 msg2_t; msgType2::SharedPtr msg2_p; std::string topic_name1 = "t2" ref_maps[t1] = std::make_tuple(msg1_t, msg1_p); ref_maps[t2] = std::make_tuple(msg2_t, msg2_p); 这是否可能或任何其他方法可以实现类似的结果? 与某些基类不同的是 ros2 msgTypes( 和 ::SharedPtr) ,这样我就可以声明 ref_maps ,如下所示: std::map<std::string, std::tuple<MsgTypeBase, MsgTypePtrBase>> ref_maps; 如果需要使用一个类,该类的实例在任何给定时间都保存一种类型的值或其替代值(前提是它们已知),则标准解决方案是std::variant。 它本质上代表了一个类型安全的联合,它提供了一组成员和非成员函数,使一种类型和另一种类型之间的切换更简单。此外,值始终是静态分配的,避免了动态分配的内存和性能开销。 std::map<std::string, std::pair<std::variant<T1, T2>, std::variant<T1, T2>>>; 如果可能的类型对只有(T1,U1),(T2,U2),则可以按以下方式修改定义。 std::map<std::string, std::variant<std::pair<T1, U1>, std::pair<T2, U2>>>;

回答 1 投票 0

C++ 映射:如何获取用于将元素添加到 std::map 的密钥?

我正在使用包含例如的键创建一个 std::map兼作标识符。但是,我需要密钥有一些余地,即容差,以将密钥标识为“相同”。 我成功了

回答 1 投票 0

如何在不使用 auto 的情况下在 C++ 中循环遍历 unordered_map?

我试图循环遍历一个unordered_map,以查找它的任何值是否大于2。但是这种语法是错误的 unordered_map mp; 对于 (int i = 0; i < N; i++) { ...

回答 2 投票 0

对 std::map 进行排序而不删除和重新插入条目

我有一个std::map,其中键是一个指向具有priority()方法的类的指针,值只是一个int。映射有一个比较函数,可以通过优先级()来比较键,这是一个

回答 1 投票 0

find_if可以用来在std::map/std::unordered_map中查找键吗?

这是一个简单的程序,包括将一个元素添加到 std::unordered_map 中。但在添加之前,首先检查该密钥是否已经存在,如果存在则不要添加。 我的问题是...

回答 1 投票 0

无法在地图中插入键和值

我一直在尝试按以下方式插入一些键和值,但出现错误: 错误:没有匹配的构造函数来初始化“Edge” 我正在使用 C++17。 这是我的程序: #inc...

回答 1 投票 0

无法在映射中插入键和值

我一直在尝试按以下方式插入一些键和值,但出现错误:没有匹配的构造函数来初始化“Edge”。我正在使用 C++17: 这是我的程序: #inc...

回答 1 投票 0

std::map::operator[] 如何初始化值(尤其是基本类型)?

我正在做一个简单的地图程序,但最终提出了这个问题。 cplusplus.com 是这样说的: 存取元件 如果 k 与容器中元素的键匹配,则该函数返回对其

回答 2 投票 0

存储在 std::map/std::set 与存储所有数据后对向量进行排序

语言:C++ 我能做的一件事是分配一个大小为 n 的向量并存储所有数据 然后使用 sort(begin(),end()) 对其进行排序。不然我可以继续放 地图或集合中的数据已排序...

回答 3 投票 0

我对 std::map 和 std::unordered_map 的理解正确吗?

请考虑以下事项: 在 C++ 中,std::unordered_map 在插入过程中使用哈希函数来确定新插入元素的位置。 但是,std::map 不使用...

回答 1 投票 0

std::(unordered_)map 和 std::(unordered_)set 共享代码吗?

假设我关心二进制大小,我已经使用std::map,并且我需要一组。我可以使用 std::map,而不是使用 std::set。这有帮助吗,或者已经是通用代码了......

回答 2 投票 0

std::map::find 找到不存在的键

我正在尝试使用 std::map::find 方法通过某个键获取迭代器。但是,我得到了一些有效的迭代器,但与映射的键对应的对的第一个值在映射中不存在。这是...

回答 1 投票 0

班级地图中的智能指针?

我正在尝试在地图中插入对象,建议我使用指针,所以这是我的代码: #包括 #包括 #包括 类人 { 私人的: INT...

回答 1 投票 0

如何使用数组作为地图值?

我正在尝试创建一个映射,其中键是 int,值是数组,如下所示: int 红色[3] = {1,0,0}; int 绿色[3] = {0,1,0}; int 蓝色[3] = {0,0,1}; std::map 颜色...

回答 10 投票 0

可以简化此代码以向 std::map 添加结构吗?

我有这样的结构: 结构体S_SWAP_TALK { S_TALK_INFO* pHomeTalk{}; S_AWAY_TALK* pAwayTalk{}; }; 而且,我有这个 std::map: std::map m_mapSwapTalks; 此刻...

回答 1 投票 0

自定义分配器和 std::map

这是我可以用 gcc 编译的代码: #包括 #包括 模板 类map_alloc { 民众: typedef std::size_t 大小类型; 类型定义...

回答 1 投票 0

使用 std::wstring_view 为映射定义 const std::wstring 键

我正在尝试使用 std::map 和 std::wstring 作为键来设置一个结构,并尝试使用一些语法 surgar 通过宏和 std::wstring_view 使键声明/定义变得容易(对于.. .

回答 1 投票 0

在基于范围的“for”循环中删除 std::map 的节点

我需要检查 std::map 的数据,并删除其中一些。 我正在使用基于范围的“for”循环,如下所示: std::map 数据 { { 1, "name1" }, { 2, "name2&q...

回答 2 投票 0

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.