打印向量 - 空输出
Printing Vectors - Empty output
我刚从C 开始,而IM学习了矢量。制作了一个循环以将值添加到矢量表中,然后尝试使用以下方式将其打印出来:
std::copy(multi_array.begin(), multi_array.end(), std::ostream_iterator<char>(std::cout, " "));
但在控制台窗口上打印一个空字符串。
这是代码:
vector<int> multi_array;
for(int v=0;v <= 3; v++){
multi_array.push_back(v);
}
std::copy(multi_array.begin(), multi_array.end(), std::ostream_iterator<char>(std::cout, " "));
您需要
std::ostream_iterator<int>(std::cout, " ")
^^^
写int
s。第一个模板参数必须是要打印的类型。
要避免这样的未来麻烦,请查看文档。
而不是使用
std::ostream_iterator<char>(std::cout, " "))
尝试使用:
std::ostream_iterator<int>(std::cout, " "))
您应该传递模板向量的类型。它有效:)?
您的矢量中的ints被铸成chars,而chars 0,1,2,3不可打印,这就是为什么您要获得空输出。
您需要放置可打印字符,以查看实际输出。
for (char v = 'a'; i <= 'z'; ++v) {
mutli_array.push_back(v);
}
或您需要指定有效类型以打印:
std::ostream_iterator<int>(std::cout, " ");
您可能会查看一些C 教程或其中的Udemy课程。与使用复制功能相比,一种更直接的打印方法是:
vector<int> multi_array;
for(int v=0;v <= 3; v++){
multi_array.push_back(v);
cout << multi_array.back() << " ";
}
cout << endl;
不要忘记#include iostream
您需要在 ostream_iterator
peftintion中具有正确的数据类型:
std::copy(multi_array.begin(), multi_array.end(), ostream_iterator<int>(std::cout, " "));
相关文章:
- 在 C++ 中输出枚举类类型的向量元素
- 为什么即使使用 for 循环遍历我的向量,它也没有输出到控制台?(C++)
- 尝试重载输出运算符时,我无法遍历对象向量
- 从 exprTk 获取向量作为输出
- 数组为此合并排序函数提供了正确的输出,但向量给出了不正确的输出.出了什么问题?
- 如何在C++中编写 ostream 的向量,它接收所有不同的输出流,如 cout、ostringstream 和 ofs
- C++向量排序给出0作为输出
- 以C++输出二维向量
- <T> 模板函数中的输出向量
- 为什么 std::accumulate 生成705032704作为输出,而不是向量中元素的总和?
- 在 Valgrind 输出中仍然可以访问 std 线程向量的块
- 从线程输出简单向量
- 使用向量时,当返回函数更改时,无法看到输出
- 具有用户定义函数的输出向量
- 矢量<int>的赋值和输出向量
- OpenCV 中凸壳函数的输出向量是什么?
- 提升精神业力 - 具有约束和传播失败的字符串的输出向量
- 列表指针类的输出向量
- 如何修复输入向量与输出向量相同时不清除输入向量的错误
- 当输出向量列表时,输出的量是平方的