Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';这是C++;Java版本';s ArrayList 刚刚回到使用C++并尝试转换我最近编写的一个简单的java程序。_Java_C++_Arraylist - Fatal编程技术网

什么';这是C++;Java版本';s ArrayList 刚刚回到使用C++并尝试转换我最近编写的一个简单的java程序。

什么';这是C++;Java版本';s ArrayList 刚刚回到使用C++并尝试转换我最近编写的一个简单的java程序。,java,c++,arraylist,Java,C++,Arraylist,C++中java的首选项是什么? 使用标准库。 这里有两个附加点,使用向量 >这里。 >不同于 ARAYLIST/和数组< /Cord>爪哇,不需要做任何特殊的事情来处理向量作为数组——C++中的基础存储保证是连续的和有效的可索引的。 与ArrayList不同,vector可以有效地保存基元类型,而无需封装为完整的对象 从向量中删除项时,请注意必须向下移动删除项上方的项以保留连续存储。对于大型容器来说,这可能会很昂贵 如果将复杂对象存储在向量中,请确保其复制构造函数和赋值运算符是有效的。在封面


C++中java的首选项是什么?

使用标准库。

这里有两个附加点,使用<代码>向量 >这里。

<> >不同于<代码> ARAYLIST/<代码>和数组< /Cord>爪哇,不需要做任何特殊的事情来处理<代码>向量<代码>作为数组——C++中的基础存储保证是连续的和有效的可索引的。 与
ArrayList
不同,
vector
可以有效地保存基元类型,而无需封装为完整的对象

向量
中删除项时,请注意必须向下移动删除项上方的项以保留连续存储。对于大型容器来说,这可能会很昂贵

如果将复杂对象存储在
向量中,请确保其复制构造函数和赋值运算符是有效的。在封面中,C++ STL在容器内务处理中使用这些。

<>关于代码>预留()//>代码存储(上前),即在向量构造或初始化时间上,以尽量减少内存扩展在以后的扩展中从java到C++的传递。从另一个答案来看,vector似乎没有实现为链表?我说得对吗?我将此列表用作一个集合,其中添加和删除的对象的周转率相当高。这个数组实际上是最好的实现吗?还是有链表版本?@interstar-绝对正确。如果确实需要链表语义,则使用
std::list
,尽管这样会失去可索引性(无
运算符[]
),因此它不是真正的数组<代码>列表
具有自己的特性,因此
向量
通常是更好的选择。在标准C++容器中,你将不得不妥协于一种或另一种方式。查看
deque
,它可能为您提供更好的性能。测量
vector
vs
deque
vs
list
相对容易,因为它们在代码中基本上是可互换的-只需为容器使用typedef,例如
typedef vector MyList
。好吧,我先试试向量。因为索引很有用。如果速度太慢,我可能会移动到链接列表。Thanks@interstar,
ArrayList
,正如您可以从名称猜到的那样,也没有实现为链表。您可能正在考虑
LinkedList
。此外,即使您在列表中添加和删除的对象的周转率相当高,
vector
可能仍然比
list
快,只要您最初为它分配了足够的空间,而它不需要重新分配(即,给它应有的最大空间)。@KyleStrand这很有趣。我一直认为ArrayList的意思是“一个实现为链表的类似ArrayList的东西”,而不是“一个实现为数组的类似链表的东西”。到目前为止,更好的答案应该是公认的。