2 baozhadehulu baozhadehulu 于 2015.06.03 22:27 提问

关于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>')

7个回答

a1193561652
a1193561652   Rxr 2015.06.03 22:37
已采纳

创建vector的时候初始化大小,res_var后面加下标,最后的if里写“==”。

caozhy
caozhy   Ds   Rxr 2015.06.03 23:47

res_var是一个集合,怎么等于两个数相加,估计你少了下标。或者你想postback?

autocyz
autocyz   2015.06.04 10:14

vector是一个容器,你能用同样的容器给他赋值,怎么可以用把两个数相加的结果赋给vector

nswcfd
nswcfd   2015.06.04 11:21

vector不支持从int的赋值,数字赋值给数字的集合没有意义,估计是忘了下标了。

vector没有定义<<操作符,当然自己也可以定义<<操作符,比如说定义为把所有的成员都用{}包起来。

u012221383
u012221383   2015.06.04 09:44

你把你自己定义的 i 作为了vector的本身带有的了,你通过自己定义的i坐标去找vector中的坐标,你说可能吗

dominating413421391
dominating413421391   2015.06.06 22:06

可以用int定义res_var,然后放进vector里

oyljerry
oyljerry   Ds   Rxr 2015.06.03 22:42

vector需要遍历,然后cout一个个输出元素。不能直接输出vector

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!