【问题标题】:Best container for C++ class objectsC++ 类对象的最佳容器
【发布时间】:2013-06-06 23:29:19
【问题描述】:

我有几年的 Java 经验,我想知道,在 C++ 中存储类对象的最佳方式是什么?

基本数组没有我需要的功能,有没有一种数组更像Java的arraylist?我注意到向量似乎是一种流行的选择,有点像数组列表和堆栈的混合?

我正在尝试制作一个小棋盘游戏,我希望我的游戏驱动程序通过将我的棋子放置在另一个容器中的位置容器中来操作,有什么建议吗?

我还想知道对于此类项目,最好的 GUI 是什么?我试着用谷歌搜索这个问题,我得到了一份可能性清单。有没有一种只适用于基本形状和用户按钮,没有什么太复杂的?

【问题讨论】:

  • 使用向量
  • 我很好奇你类比中的堆栈来自哪里。
  • 是的 std::vector 可能最接近 Java 的 ArrayList 类。两者都由数组支持,具有无限空间、初始容量等。
  • @chris 我猜操作员注意到了 push_back 和 pop_back 方法。
  • 注意到一些推送弹出功能

标签: c++ class user-interface containers


【解决方案1】:

C++ 中等价的 Arraylist 是 std::vector(它们非常接近)。

如果您不知道要使用哪种数据结构,请获取 std::vector。这是 C++ 中的最佳实践(IIRC,Scott Meyers/Bjarne/Sutter(item 76) 建议默认使用 std::vector)。

【讨论】:

  • 嗯,它不一定在实践中是最好的,但它是一种低开销的默认选择,可以在以后出现性能问题时重新访问。不过,请注意,它不支持按键访问或元素的唯一性(本身):它只是一个元素序列。
【解决方案2】:

Herb Sutter recommends deque 在某些情况下。

还有一个叫做segmented_array的东西。

【讨论】:

猜你喜欢
  • 2010-10-22
  • 1970-01-01
  • 2016-03-22
  • 1970-01-01
  • 2010-10-04
  • 2014-06-16
  • 2017-03-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多