vector <string>为null,而某些字符串已插入

Bec*_*ter 0 c++ string cout vector

我创造了一个vector<string>持有strings,但是当我cout<<vec[0],我发现其中没有任何东西.为什么?

#include <iostream>
#include <vector>
#include <string>

using namespace std;
int main()
{
vector<string> vec(10);
string s("123123");
vec.push_back(s);
cout<<vec[0]<<endl;
vector<string>::iterator it=vec.begin();
cout<<*it<<endl;
}
Run Code Online (Sandbox Code Playgroud)

Col*_*mbo 6

 vector<string> vec(10);
Run Code Online (Sandbox Code Playgroud)

此行定义了一个矢量vec最初十个元素.

vec.push_back(s);
Run Code Online (Sandbox Code Playgroud)

push_back是个11 部件.

cout<<vec[0]<<endl;
Run Code Online (Sandbox Code Playgroud)

输出的第一个元素vector.与其他前十个一起进行了价值初始化的那个.

push_back顾名思义,插入容器的背面.insert像这样尝试开头:

vec.insert( vec.begin(), s );
Run Code Online (Sandbox Code Playgroud)

这应该给你正确的答案.