Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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++ 阵列与向量相比有哪些优势?_C++_Arrays_Vector - Fatal编程技术网

C++ 阵列与向量相比有哪些优势?

C++ 阵列与向量相比有哪些优势?,c++,arrays,vector,C++,Arrays,Vector,经常会出现“家庭作业”式的问题,以便处理数组溢出、索引、需要随数组传递大小的函数等 与std::vector相比,数组有哪些优点 在什么情况下使用数组更好?通过将int[MAX]更改为std::vector,似乎可以很好地解决许多问题。在这些问题中看到的几乎所有代码中,性能敏感度都不是问题,尽管这可能是阵列的优势,因此,如果是这样,请解释两者之间的差异 在大多数情况下,向量将完成数组所做的一切,并将编译成相对相似的形式 您可能会注意到的一点是,向量在调整其容器大小时很可能会移动其内存位置,这可能

经常会出现“家庭作业”式的问题,以便处理数组溢出、索引、需要随数组传递大小的函数等

与std::vector相比,数组有哪些优点


在什么情况下使用数组更好?通过将int[MAX]更改为std::vector,似乎可以很好地解决许多问题。在这些问题中看到的几乎所有代码中,性能敏感度都不是问题,尽管这可能是阵列的优势,因此,如果是这样,请解释两者之间的差异

在大多数情况下,向量将完成数组所做的一切,并将编译成相对相似的形式

您可能会注意到的一点是,向量在调整其容器大小时很可能会移动其内存位置,这可能是由其某些使用函数引起的。这将中断指向向量中数据的所有指针

因此,在不希望数据位置移动的情况下,数组的数据将不会移动,并且可能是您想要的


仍然可以通过保留所需数量来避免向量调整大小,这样它就不会调整大小,但更安全的方法是用指向数据的指针来填充向量。

低级API通常获取/设置数组参数,这使得向量在这种情况下不切实际。另外,堆栈分配比堆分配快。@RedAlert对于那些API,如果arrBah-仅使用弹出的“建议问题”检查重复项,则通过传递&vec[0]可以同样好地使用向量,但没有显示任何有用的内容。然而,这显然是一个重复-将关闭。@MohitJain您可以,但您需要事先在向量中保留足够的空间来执行此操作,这会破坏在第一步中使用向量覆盖数组的目的place@RedAlert:确保向量足够大与确保数组足够大没有区别。它当然不会违背使用向量的目的。