将字符串存储到向量中

新手上路,请多包涵

该错误表示没有匹配的函数来调用 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];
    }

}

原文由 Brogrammer93 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 426
1 个回答

Since your list is a vector of string , pushing single char s into it wouldn’t work: you should either make it a char s 的向量,或读取 string s:

 string input;
while(cin>>input) {
    list.push_back(input);
}

Note that list[99-i] is rather suspicious: it will work only if the list has exactly 99 elements, and only if you change i-- for i++ 。否则,您将在访问超过向量末尾的元素或访问负索引处的元素时获得未定义的行为。

如果您想从后面打印列表,请改用 list[list.size()-1-i] ,并使用 i++ 而不是 i-- ,否则循环不会停止。

原文由 Sergey Kalinichenko 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题