C ++不能在cout中使用向量和字符串文字

时间:2018-08-25 08:30:35

标签: c++ cout

我是一个刚学会使用C ++几周的学生。我在Code :: Block上编写了C ++代码,我试图运行此代码来了解vector:

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main()
{
    vector<int> intVector;
    for(int i = 0; i < 10; i++)
    {
        intVector.push_back(i+1);
    }
    cout << "Numbers in vector: ";
    for(int i = 0; i < intVector.size(); i++)
    {
        cout << intVector[i] + " ";
    }
}

但是输出确实很奇怪:

Numbers in vector: vector::_M_emplace_back_auxector::_M_emplace_back_auxctor::_M_emplace_back_auxtor::_M_emplace_back_auxor::_M_emplace_back_auxr::_M_emplace_back_aux::_M_emplace_back_aux:_M_emplace_back_aux_M_emplace_back_aux
Process returned 0 (0x0)   execution time : 0.047 s
Press any key to continue.

有人知道如何解决此问题吗?我使用向量的方式是否错误?

1 个答案:

答案 0 :(得分:4)

尝试像这样更改cout行:

 cout << intVector[i] << " ";

您要执行的操作是 add int& string文字-在某些编译器中,它将发出警告,指示您您没有得到想要的东西。

例如使用 Clang

  

警告:在字符串中添加'__gnu_cxx :: __ alloc_traits> :: value_type'(aka'int')不会追加到字符串[-Wstring-plus-int]

    cout << intVector[i] + " ";

            ~~~~~~~~~~~~~^~~~~