[英]Invalid operands to binary expression error upon printing vector values
我的程序正在接收由空格分隔的文件值,但是当我尝试打印出向量时出现这个奇怪的错误(循环向量有效,但是我保存数据以稍后解析的那个,我得到无效的操作数错误)。 这是错误的样子:
joj.cpp:36:13: error: invalid operands to binary expression ('std::__1::ostream' (aka 'basic_ostream<char>') and
'std::__1::__vector_base<std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >,
std::__1::allocator<std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > > >::value_type' (aka
'std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >'))
std::cout << data[i] << " ";
~~~~~~~~~ ^ ~~~~~~~
这是我的代码:
#include <vector>
#include <string>
#include <fstream>
#include <sstream>
#include <iostream>
int main()
{
std::vector<std::vector<unsigned int> > data;
std::ifstream file("primer_vhoda.txt");
std::string line;
while(std::getline(file, line))
{
std::vector<unsigned int> lineData;
std::stringstream lineStream(line);
int value;
while(lineStream >> value)
{
lineData.push_back(value);
}
data.push_back(lineData);
for(int i = 0; i<lineData.size(); i++)
std::cout << lineData[i] << " ";
}
for(int i = 0; i<data.size();i++){
std::cout << data[i] << " ";
}
}
我要打印的是我的数据向量( data.push_back(lineData);
)但我似乎找不到问题,谢谢帮助
data[i]
是一个std::vector<unsigned int>
- 没有operator<<
重载。 您还需要遍历内部向量。 例子:
for(auto& inner_vector : data) {
for(auto value : inner_vector) {
std::cout << value << ' ';
}
std::cout << '\n'; // if you want a newline after each row
}
或使用前 C++11 (没有基于范围的 for 循环):
for(size_t i = 0; i < data.size(); ++i) {
for(size_t j = 0; j < data[i].size(); ++j) {
std::cout << data[i][j] << ' ';
}
std::cout << '\n'; // if you want a newline after each row
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.