经常做作业'样式问题出现在SO处理数组溢出,索引,需要大小传递给数组的函数等等。
array
与std::vector
相比有哪些优势?
在什么情况下使用array
会更好?通过将int[MAX]
更改为std::vector<int>
并且几乎在这些问题中看到的所有代码中,似乎可以很好地解决许多问题,性能敏感性不是问题(尽管这可能对{ {1}},如果是,请解释)
答案 0 :(得分:0)
两者之间差异不大。
在大多数情况下,Vector会执行Array所做的所有操作,并且编译为相对类似。
你可能注意到的一件事是,Vector在调整其容器大小时很可能会移动其内存位置(这可能是由它的一些使用函数引起的。)这将破坏向量中数据的所有指针。 / p>
因此,如果您不希望数据位置移动,则数组的数据将无法移动,可能就是您想要的。
仍然可以通过保留所需的量来避免Vector调整大小,这样它就不会调整大小,但更安全的方法是用数据指针填充向量。