我是一个刚学会使用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.
有人知道如何解决此问题吗?我使用向量的方式是否错误?
答案 0 :(得分:4)
尝试像这样更改cout
行:
cout << intVector[i] << " ";
您要执行的操作是 add 和int&
和 string文字-在某些编译器中,它将发出警告,指示您您没有得到想要的东西。
例如使用 Clang :
警告:在字符串中添加'__gnu_cxx :: __ alloc_traits> :: value_type'(aka'int')不会追加到字符串[-Wstring-plus-int]
cout << intVector[i] + " "; ~~~~~~~~~~~~~^~~~~