gpt4 book ai didi

c++ - 用常量值填充 std::vector

转载 作者:太空狗 更新时间:2023-10-29 23:23:54 25 4
gpt4 key购买 nike

我的代码必须使用多个编译器(GCC、MSVC、Intel)在多个平台(Linux、Mac、Windows)和架构(32/64 位)上运行。在一段瓶颈代码中,我已经分配了一个 std::vector<double> x大小 > 0。用给定的常量值填充它的最佳方法是什么 c

我的第一种方法是循环:

for(std::size_t i = 0; i < x.size(); ++i)
x[i] = c;

循环也可以用迭代器完成:

for(std::vector<double>::iterator it = x.begin(); it != x.end(); ++it)
*it = c;

我也可以使用类std::vector给出的赋值函数并相信如果大小相同则不会重新分配(我希望如此):

x.assign(x.size(), c);

有没有一种标准的方法可以非常有效地做到这一点? (我无法测试所有可能的配置,我需要一个标准的或good-feeling-from-experience 响应)。

注意 1:我不想要使用 asm 的解决方案

注意 2:出于兼容性原因,我不使用 C++11

最佳答案

您可以 use std::fill填充整个 vector

 std::fill(v.begin(), v.end(), c);

关于c++ - 用常量值填充 std::vector<double>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46192263/

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