gpt4 book ai didi

c++ - 将 char 和 int 的随机序列的字符串解析为单独的 vector

转载 作者:行者123 更新时间:2023-11-30 05:02:08 24 4
gpt4 key购买 nike

我希望能够解析如下字符串:

inputStr = "abc 12 aa 4 34 2 3 40 3 4 2 cda t 4 car 3"

分成单独的 vector (字符串 vector 和整数 vector ),这样:

strVec = {"abc", "aa", "cda", "t", "car"};
intVec = {12, 4, 34, 2, 3, 40, 3, 4, 2, 4, 3};

做这个的好方法是什么?我对 stringstream 有点熟悉,想知道是否可以做这样的事情:

std::string str;
int integer;
std::vector<int> intVec;
std::vector<std::string> strVec;
std::istringstream iss(inputStr);

while (!iss.eof()) {
if (iss >> integer) {
intVec.push_back(integer);
} else if (iss >> str) {
strVec.push_back(str);
}
}

我已经尝试过达到那种效果,但程序似乎进入了某种暂停状态(?)。非常感谢任何建议!

最佳答案

iss >> integer 失败时,流被破坏,iss >> str 将继续失败。一个解决方案是在 iss >> integer 失败时使用 iss.clear():

if (iss >> integer) {
intVec.push_back(integer);
} else {
iss.clear();
if (iss >> str) strVec.push_back(str);
}

关于c++ - 将 char 和 int 的随机序列的字符串解析为单独的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50033696/

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