gpt4 book ai didi

c++ - 从 vector 初始化数组

转载 作者:太空狗 更新时间:2023-10-29 20:17:46 27 4
gpt4 key购买 nike

可以从包含与 vector 类型相同的元素的数组中初始化 vector ,例如

double a[] ={ somevalues };
std::vector<double> vec(a, a+dimension)

我想知道在没有显式循环的情况下是否可以采用另一种方式?是否可以使用像上面那样的快捷方式从 vector 初始化一个数组,我想不是,但让我问一下......

最佳答案

不,不可能在初始化时执行此操作,但您可以使用 STL 中的一种算法:

std::vector<int> v = create_vector();
int array[100];
assert( v.size() >= 100 );
std::copy( v.begin(), v.begin()+100, array );

或者:

std::copy_n( v.begin(), 100, array );

断言是为了确保您不会超出 vector 的大小(这会导致未定义的行为),并限制拷贝(表达式中的 100),这样您也不会溢出数组。

关于c++ - 从 vector 初始化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6051802/

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