c++ - 如何插入std::map?

标签 c++ stl

是否有一个 std 迭代器可以用来使用 std 算法(例如 std::copy)将元素插入到 std::map 中?

我需要一个容器来将一个对象链接到一个字符串,我考虑使用 std::map。有没有更好的容器?忘了说 - 元素需要分类。

最佳答案

我认为OP正在寻找的是std::inserter(mymap, mymap.end())

所以你可以这样做:

std::copy( inp.begin(), inp.end(), std::inserter(mymap, mymap.end()) );

输入类型必须是您的映射采用的对类型,否则您的算法需要使用 std::transform 并带有函数/仿函数,以将输入类型转换为这样的 std::pair.

inserter 实际上并不是一个迭代器,而是一个生成迭代器的模板化函数(std::insert_iterator,它是一个模板化类型,但该类型在函数调用中自动解析)。

关于c++ - 如何插入std::map?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4375180/

相关文章:

c++ - C、C++、python、perl在Web开发中的作用

c++ - 为 std::function 设置调用约定

c++ - 一行断言测试 STL 容器是否已排序

c++ - 安全地将 printf 打印到字符串的最佳方法?

c++ - 将结构转换为类并使用构造函数、修改器和访问器

c++ - 我的 While 循环不会在条件处停止

c++ - Vector在C++中的实现

c++ - std::map::size() 不同于迭代器

c++ - 基于 MSVC 10 范围的 for 循环

c++ - 提高OpenGL渲染性能: rendering multiple times from different POVs