[英]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.