数组与向量有什么好处?

时间:2014-11-07 05:00:14

标签: c++ arrays vector

经常做作业'样式问题出现在SO处理数组溢出,索引,需要大小传递给数组的函数等等。

arraystd::vector相比有哪些优势?

在什么情况下使用array会更好?通过将int[MAX]更改为std::vector<int>并且几乎在这些问题中看到的所有代码中,似乎可以很好地解决许多问题,性能敏感性不是问题(尽管这可能对{ {1}},如果是,请解释)

1 个答案:

答案 0 :(得分:0)

两者之间差异不大。

在大多数情况下,Vector会执行Array所做的所有操作,并且编译为相对类似。

你可能注意到的一件事是,Vector在调整其容器大小时很可能会移动其内存位置(这可能是由它的一些使用函数引起的。)这将破坏向量中数据的所有指针。 / p>

因此,如果您不希望数据位置移动,则数组的数据将无法移动,可能就是您想要的。

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