baozhadehulu
baozhadehulu
2015-06-03 14:27
采纳率: 52.6%
浏览 5.5k

关于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
    纵横车 2015-06-03 14:37
    已采纳

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

    点赞 评论
  • oyljerry
    oyljerry 2015-06-03 14:42

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

    点赞 评论
  • caozhy

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

    点赞 评论
  • u012221383
    坏蛋你好 2015-06-04 01:44

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

    点赞 评论
  • autocyz
    autocyz 2015-06-04 02:14

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

    点赞 评论
  • nswcfd
    nswcfd 2015-06-04 03:21

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

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

    点赞 评论
  • dominating413421391
    dominating大树置林 2015-06-06 14:06

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

    点赞 评论

相关推荐