gpt4 book ai didi

c++ - 为什么此代码给出未处理的异常失败

转载 作者:行者123 更新时间:2023-12-03 12:51:50 24 4
gpt4 key购买 nike

我使用了 vector ,因为我不知道输入的数量,但它不起作用。我该怎么办?

vector <string> str;

str[0] = "entity1 ABCDE 2x2 infected";

std::istringstream ss(str[0]);

std::string token;

vector<string> genes;

while (std::getline(ss, token, ' ')) {
genes.push_back(token);
}
for (int i = 0; i < genes.size(); i++) {
cout << genes[i];
}

最佳答案

在此代码中:

vector <string> str;
str[0] = "entity1 ABCDE 2x2 infected";

str 为空,因此当您访问第一个元素(位于索引 0 处)时,您会出现未定义的行为。您可以通过为 vector 中的一个字符串分配空间来解决此问题:

vector <string> str(1);

或者直接用一个字符串创建一个 vector (这将创建字符串,并将其正确放入 vector 中):

vector <string> str = {"entity1 ABCDE 2x2 infected"};

但是,从您的示例代码来看,您似乎根本不需要 vector ,单个字符串就足够了:

string str = "entity1 ABCDE 2x2 infected";
std::istringstream ss(str);

关于c++ - 为什么此代码给出未处理的异常失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61916573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com