问题描述
- 关于C++ vector 的问题
-
请问下列代码错在哪里? #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里写“==”。
解决方案二:
res_var是一个集合,怎么等于两个数相加,估计你少了下标。或者你想postback?
解决方案三:
vector是一个容器,你能用同样的容器给他赋值,怎么可以用把两个数相加的结果赋给vector
解决方案四:
vector不支持从int的赋值,数字赋值给数字的集合没有意义,估计是忘了下标了。
vector没有定义<<操作符,当然自己也可以定义<<操作符,比如说定义为把所有的成员都用{}包起来。
解决方案五:
你把你自己定义的 i 作为了vector的本身带有的了,你通过自己定义的i坐标去找vector中的坐标,你说可能吗
解决方案六:
可以用int定义res_var,然后放进vector里
解决方案七:
vector需要遍历,然后cout一个个输出元素。不能直接输出vector
时间: 2024-08-23 03:20:53