【问题标题】:How do I convert a string into a vector in C++?如何在 C++ 中将字符串转换为向量?
【发布时间】:2015-06-06 03:15:31
【问题描述】:

我有一个“maze.txt”文件,其中包含几个 ASCII 字符,代表迷宫中的空格,如下所示:

######
Sa#hln
#bdp##
##e#ko
#gfij#
######

我使用 ifstream 读取我的 .txt 文件并定义了一个字符串来表示其内容:

vector<char> vec;
...

int main() {
 string s;
 ifstream mazefile("maze.txt");
 while (getline(mazefile, s)) {
     mazevec.push_back(s);
 }
return 0;
}

在上面我定义了一个名为vec 的向量,我希望将s 的内容放入其中。在网上看,我看到很多帖子建议使用push_back,这就是我在那里使用它的原因,但是我的 IDE 抱怨我的参数与 push_back 的适当调用不匹配。

有人知道我哪里出错了吗?谢谢!

【问题讨论】:

    标签: c++ string vector ifstream


    【解决方案1】:

    您将vec 声明为vector&lt;char&gt;。您想将其声明为 vector&lt;string&gt;,因为这是您要添加到其中的内容。

    【讨论】:

    • 啊,谢谢!有什么方法可以让vec 成为 char 的向量吗?由于getline 仅适用于字符串。
    • 为什么要存储一个char的向量?你真的想存储一个嵌套的字符向量吗?
    • 您不需要将vec 设为字符向量。您可以使用 std::string::c_str() 获取原始 C 样式字符串
    • @cursayer:你可以用一个字符串来做到这一点。 std::string 重载了 [] 运算符。所以你可以使用vec[1][0]。你在用std::string 不是吗?
    • @Levi,是的,谢谢。我只是不知道你可以用字符串做到这一点。很抱歉,我在没有太多先验知识的情况下潜入 C++。干杯!
    猜你喜欢
    • 2020-02-27
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 2016-05-03
    • 2021-09-19
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    相关资源
    最近更新 更多