gpt4 book ai didi

c++ - 如何通过 vector 构建数组?

转载 作者:行者123 更新时间:2023-11-28 01:35:57 25 4
gpt4 key购买 nike

我想编写一个函数来创建一个带有查看 vector 的数组。比如

int foo(vector<int> &A){
int N=A.size();
int myarray[N]={0}; //here is an error
}

这是我的问题:

  1. 我知道构建数组必须使用 const 值,但 vector::size() 不返回 const 值?
  2. 使用 const 修改表达式不起作用 N 仍然是一个变量。

最佳答案

我不明白为什么你需要创建一个数组。如果将数组的任意位置传递给函数,则传递的是指向此类数组的指针。但是你可以很容易地得到 vector 的内部数据作为这样一个指针:

std::vector<int> v({1, 2, 3, 4});
int* values = v.data();

完成,你有了你的“数组”,你甚至不必复制数据......

如果您还需要一个拷贝,只需复制 vector 本身即可。

旁注: vector 的内容由标准保证是连续的,因此您在迭代“数组”时不会遇到任何麻烦。

但是,实际上存在一个问题:如果您想存储指向数组内容的指针,如果您向 vector 中添加更多元素,它们可能会失效,因为它可能会重新分配其内容。请注意! (实际上,就像你出于任何原因需要创建一个新数组一样......)

关于c++ - 如何通过 vector 构建数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49234465/

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