Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.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++ STD的java::向量? 直到今天我才想到爪哇和C++ STD:ARILIST:向量相同,但结果是数组只存储对象。原语被包装。我要找的是这样的东西: class Array { int i; type[] array; Array() { this.i = 0; this.array = new array[1]; } Array(int initialSize) { this.i = 0; this.array = new array[initialSize]; } type get(int index) { return array[index]; } void add(type to_add) { if(array.length == i) { type[] newArray = new type[array.length * 2]; for(int j = 0; j < array.length; j++) newArray[j] = array[j]; } array[i++] = to_add; } }_Java_C++_Arraylist - Fatal编程技术网

相当于C++ STD的java::向量? 直到今天我才想到爪哇和C++ STD:ARILIST:向量相同,但结果是数组只存储对象。原语被包装。我要找的是这样的东西: class Array { int i; type[] array; Array() { this.i = 0; this.array = new array[1]; } Array(int initialSize) { this.i = 0; this.array = new array[initialSize]; } type get(int index) { return array[index]; } void add(type to_add) { if(array.length == i) { type[] newArray = new type[array.length * 2]; for(int j = 0; j < array.length; j++) newArray[j] = array[j]; } array[i++] = to_add; } }

相当于C++ STD的java::向量? 直到今天我才想到爪哇和C++ STD:ARILIST:向量相同,但结果是数组只存储对象。原语被包装。我要找的是这样的东西: class Array { int i; type[] array; Array() { this.i = 0; this.array = new array[1]; } Array(int initialSize) { this.i = 0; this.array = new array[initialSize]; } type get(int index) { return array[index]; } void add(type to_add) { if(array.length == i) { type[] newArray = new type[array.length * 2]; for(int j = 0; j < array.length; j++) newArray[j] = array[j]; } array[i++] = to_add; } },java,c++,arraylist,Java,C++,Arraylist,类型是基本数据类型之一 注意:我不需要存储对象的能力,所以我不希望ArrayList的内存开销 如果我的任何假设是错误的,请让我知道:-D 编辑: 这不是一个重复,这是一个关于性能的问题,而不是它是否可能。 < P>标准java java库不提供与C++原语类型一起工作的C++ STD::vector CLSs的等价物。备选方案是: 使用标准类(如ArrayList)和say Integer作为类型参数 使用第三方库。例如,旧的GNU-Trove库。注意:这不是建议。这就是一个例子 Trove和

类型是基本数据类型之一

注意:我不需要存储对象的能力,所以我不希望ArrayList的内存开销

如果我的任何假设是错误的,请让我知道:-D

编辑:
这不是一个重复,这是一个关于性能的问题,而不是它是否可能。

< P>标准java java库不提供与C++原语类型一起工作的C++ STD::vector CLSs的等价物。备选方案是:

使用标准类(如ArrayList)和say Integer作为类型参数

使用第三方库。例如,旧的GNU-Trove库。注意:这不是建议。这就是一个例子


Trove和类似工具不是也不能使用Java泛型实现。这是因为Java只允许引用类型用作泛型类的参数。因此,这些Java库实际上是用集合API实现的复制粘贴代码,这些API在很大程度上都不是多态性的。

如果只是为了不需要,我想说的是不要太可笑。如果你有一个我怀疑的重要性能问题,因为你不会问这样的问题,看看第三方库,它提供了原始集合。相比之下,C++ java实际上是一种面向对象的编程语言。所以如果java java C++代码只需使用对象,可能的副本:我不需要存储对象的能力,所以我不想让ALAYLISTAB-C++的内存开销不是java,Java不是C++。仅仅因为它们看起来相似,并不意味着你可以用C++编写代码来编写java代码,反之亦然。所有这些都将要编写的代码通常是低效、错误的,而且只是在你所用的语言中看起来很傻和奇怪。@ H.BOE——首先,这个问题是用C++标记的,所以从每天使用它的人那里得到透视。如果您查看您接受的答案,请注意链接的库在算法上比ArrayList更高效,或者声称比ArrayList更高效。我的主要观点是,你不能比较一种语言,它可以与裸金属(如C++)和一种使用VM(如java)的语言工作。将C++编译器与其他C++编译器进行比较,将JVM实现与另一个JVM进行比较。不要用C++来与java进行交互,因为它没有什么意义。尽管你把TROVE提到不是推荐,但是这样的说法仍然有效。请提及fastutil或Eclipse集合而不是Trove,至少这些库是受支持的。如果您希望编写自己的答案并给出自己的建议,请随时这样做。如果人们故意曲解我的观点,这不是一个建议。。。这是他们的问题。