打印带有名称的矢量时出错

时间:2017-07-07 14:33:25

标签: c++ vector

我有一个名为" list"我想打印列表中的名称,但它说

  

运营商"<<"匹配这些操作数

     

操作数类型是:std :: ostream<<的std :: string

为什么我有这个错误以及我如何修复它?

#include<iostream>
#include<vector>
#include<algorithm>


using namespace std;
vector<string> list;

vector<string> getAll() {     //I tried to use this function instread of "list"(list is used below) but it's the same result.
    return list;
}


int main() {

    list.push_back("Ion");
    list.push_back("Gabi");
    list.push_back("Sabrina");

    for (string i : list) 
        std::cout << i;           //HERE

    }

2 个答案:

答案 0 :(得分:3)

你没有#include <string>。这很重要。

是的,我知道你可以在没有它的情况下实例化矢量。不,这没有什么区别。这是纯粹的机会,直到你的标准库实现如何布局。

负责使<<处理字符串的函数位于该标题内。

答案 1 :(得分:0)

您错过了为#include <string>添加字符串库,包括它。标头<string>也声明了流插入器。