我刚开始用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, " "));
答案 0 :(得分:2)
答案 1 :(得分:2)
而不是使用
std::ostream_iterator<char>(std::cout, " "))
尝试使用:
std::ostream_iterator<int>(std::cout, " "))
您应该将矢量类型传递给模板。它有用吗??
答案 2 :(得分:2)
你在向量中的整数被转换为字符,而字符0,1,2,3是不可打印的,这就是你得到空输出的原因。
您需要输入可打印的字符,以查看实际输出。
std::ostream_iterator<int>(std::cout, " ");
或者您需要指定要打印的有效类型:
{{1}}
答案 3 :(得分:2)
您可以查看一些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
答案 4 :(得分:2)
您需要在ostream_iterator
定义中使用正确的数据类型:
std::copy(multi_array.begin(), multi_array.end(), ostream_iterator<int>(std::cout, " "));