gpt4 book ai didi

c++ - 分配 vector

转载 作者:太空宇宙 更新时间:2023-11-04 15:53:10 29 4
gpt4 key购买 nike

我如何将 v[i] 分配给一系列整数(v 的类型是 vector )而无需最初填充

最佳答案

你的意思是将 std::vector 初始化为一系列整数?

int i[] = {1, 2, 3, 4, 5};
std::vector<int> myVector(i, i+ (sizeof(i)/sizeof(int)));

如果您打算创建一些元素的 vector ,那么您可以使用它们的索引值执行分配。这里,以下语句声明并初始化一个 vector ,其元素默认初始化为 0。

std::vector<int> myVector(5); // constructs a vector of size five integers.

for (int x = 0; x < 5; x++)
myVector[x] = i[x]; // assign values using subscript [..]

但我认为更好的方法是@CashCow 在他的回答中提到的那样。

另请注意,您还可以预先分配内存以将元素添加到 vector 中,从而避免任何重复的内存分配。

例如:

std::vector<int> myVector; // empty vector for integers
myVector.reserve(5); // pre-allocates memory for five integers

for (int i = 0; i < 5; i++) // now, you can add your elements
myVector.push_back(i);

如果您知道元素的大小,预分配内存通常是个好主意,即当性能是一个重要因素时,如果有大量元素。

关于c++ - 分配 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4553940/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com