将字符串存储到矢量中

Bro*_*r93 0 c++ sorting string stl vector

错误说没有匹配的函数要求push_back().

我包括<vector>所以我不明白为什么会发生这种错误.如果你还可以告诉我如何接受一个字符串并将其存储到一个非常有用的矢量中!

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

int main()
{
    vector<string> list;
    char input;
    while(cin>>input)
    {
        list.push_back(input);
    }
    for(int i=0;list.size();i--)
    {
        cout<<list[99-i];
    }

}
Run Code Online (Sandbox Code Playgroud)

das*_*ght 6

因为你list是一个vectorstring,将单个chars 推入其中是行不通的:你应该将它作为chars 的向量,或者读取strings:

string input;
while(cin>>input) {
    list.push_back(input);
}
Run Code Online (Sandbox Code Playgroud)

请注意,这list[99-i]是相当可疑的:它只有在list具有确切99元素时才有效,并且只有在您更改时才i--有效i++.否则,在访问向量末尾之后的元素或访问负索引处的元素时,您将获得未定义的行为.

如果你想从后面打印列表,使用list[list.size()-1-i],而是和使用i++代替i--,因为否则循环不会停止.