首页 >后端开发 >C++ >我应该选择哪种 C 11 容器?

我应该选择哪种 C 11 容器?

Linda Hamilton
Linda Hamilton原创
2024-11-29 15:02:10133浏览

Which C  11 Container Should I Choose?

选择最佳的 C 11 容器

简介

选择 C ​​中最合适的容器一直是一个至关重要的决定,随着 C 11 中新功能的引入,选项已经扩大。本文旨在为导航 C 11 中可用的容器选项提供指导,提供一种全面的容器选择方法。

关联容器与简单序列容器

基本原理区别在于关联简单序列容器。关联容器擅长需要基于键的高效搜索操作的情况,而简单序列容器优先考虑顺序访问和数据操作。

选择关联容器

考虑以下事项选择关联时的指南容器:

  • 有序: 如果必须保持元素的顺序,请选择有序关联容器(例如,映射或集合)。否则,选择一个无序容器(例如,unordered_map 或 unordered_set)。
  • 单独的键: 如果键与值分开,请使用映射。对于键和值不可分割的场景,集合更合适。
  • 重复:要允许重复,请使用名称中带有“multi”的容器(例如,multimap、multiset) )。否则,请选择不带“multi”的容器以防止重复。

选择简单序列容器

对于简单序列容器,请遵循以下准则:

  • 内存稳定:如果元素需要在内存中保持稳定容器修改期间的内存,选择一个列表(例如,list、forward_list)。
  • 动态大小:如果容器的大小在编译时已知,则不会更改,并且元素是默认可构造的或者可以使用完整的初始化列表进行初始化,数组是推荐。
  • 双端:为了从两端高效插入或删除,请选择双端队列。对于其他情况,向量通常是首选。

示例:

为了说明决策过程,请考虑一个场景,我们需要存储名称及其对应的唯一ID的集合,需要通过ID进行高效查找和任意插入和

  • 关联容器:是的,因为我们需要按键(ID)搜索。
  • 有序:不一定,因为名称的顺序并不重要。
  • 单独的密钥:是的,ID 与名称不同。
  • 重复:不,ID 是唯一。

根据这些标准,最好的容器选择是 unordered_map

结论

虽然这种基于文本的方法无法替代图形流程图,但它提供了一个结构化且全面的指南,用于在 C 11 中选择最合适的标准库容器。根据提供的指南,开发人员可以做出明智的决策并优化代码以提高效率和可维护性。

以上是我应该选择哪种 C 11 容器?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn