Java的ArrayList C++版本是什么

2022-08-31 11:22:01

只是回到使用C++并尝试转换我最近编写的简单Java程序。

C++中 Java ArrayList 的首选等效项是什么?


答案 1

使用标准库中的 std::vector


答案 2

这里再用几点。vector

与Java不同,您不需要做任何特殊的事情来将a视为数组 - C++中的底层存储保证是连续的并且可有效地索引。ArrayListArrayvector

与 不同,a 可以有效地保存基元类型,而无需封装作为一个成熟的对象。ArrayListvector

从 中删除项目时,请注意,必须向下移动已删除项目上方的项目,以保留连续存储。对于大型容器,这可能会变得昂贵。vector

如果将复杂对象存储在 中,请确保其复制构造函数和赋值运算符是有效的。在盖子下,STL C++在集装箱内务管理过程中使用这些。vector

关于预先存储的建议(即在向量构建或初始化时)以尽量减少以后扩展时的内存重新分配,从Java转移到C++。reserve()


推荐