请问下列代码错在哪里?
#include<iostream>
#include<vector>
#include<string>
using std::vector;
using namespace std;
int main()
{
int word;
vector<int> var;
vector<int> res_var;
cout << "Please enter a group numbers:" << endl;
while (cin >> word){
var.push_back(word);
for (vector<int>::size_type i = 0; i != (var.size()-1); i = i + 2){
res_var = var[i] + var[i+1];
cout << res_var << " ; " ;
}
if (var.size() % 2 = 1)
cout << "The last one no add." << endl;
}
return 0;
}
错误信息:
[Error] no match for 'operator=' (operand types are 'std::vector<int>' and 'int')
[Error] no match for 'operator<<' (operand types are 'std::ostream {aka std::basic_ostream<char>}' and 'std::vector<int>')
创建vector的时候初始化大小,res_var后面加下标,最后的if里写“==”。
vector需要遍历,然后cout一个个输出元素。不能直接输出vector
res_var是一个集合,怎么等于两个数相加,估计你少了下标。或者你想postback?
你把你自己定义的 i 作为了vector的本身带有的了,你通过自己定义的i坐标去找vector中的坐标,你说可能吗
vector是一个容器,你能用同样的容器给他赋值,怎么可以用把两个数相加的结果赋给vector
vector不支持从int的赋值,数字赋值给数字的集合没有意义,估计是忘了下标了。
vector没有定义<<操作符,当然自己也可以定义<<操作符,比如说定义为把所有的成员都用{}包起来。
可以用int定义res_var,然后放进vector里