gpt4 book ai didi

c++ - 初始化后来自 valarray 的错误值

转载 作者:行者123 更新时间:2023-11-28 01:43:16 26 4
gpt4 key购买 nike

我正在尝试使用 std::valarray 设置一些初始值。打印数组值,我得到的结果与我的预期不同。我在 Windows (10) 上使用 CodeBlocks(GCC 4.9.2,C++11 构建选项)。

代码如下:

#include <iostream>
#include <string>
#include <valarray>

void print(std::string aname, std::valarray<int> & va)
{
std::cout << aname << "[ ";
for(auto &i : va)
{
std::cout << va[i] << ' ';
}
cout << ']'<< endl;
}

int main()
{

std::valarray<int> one { 1, 0, 0 };
std::valarray<int> two { 0, 1, 0 };
std::valarray<int> three { 0, 0, 1 };
std::cout << std::endl;
print("one", one);
print("two", two);
print("three", three);

return 0;
}

输出是:

one[ 0 1 1 ]
two[ 0 1 0 ]
three[ 0 0 0 ]

最佳答案

当你使用这种for循环时:

for(auto &i : va)

i 接收到 va 的内容,所以,正确的显示方式是:

std::cout << i << ' ';   // not va[i]

关于c++ - 初始化后来自 valarray<int> 的错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46322812/

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