【发布时间】:2015-01-26 06:16:46
【问题描述】:
我有几个字符串,每个字符串包含一个单词和几个整数(一个字符串是整行):
Adam 2 5 1 5 3 4
John 1 4 2 5 22 7
Kate 7 3 4 2 1 15
Bill 2222 2 22 11 111
如您所见,每个单词/数字都用空格分隔。现在,我想将这些数据加载到地图中,其中单词(名称)将是键,值将是行中数字的向量。我已经在单独的临时 stl 容器中有键值,所以任务是只将每行中的整数加载到 2D 向量中,然后将这两个合并到 map 中。 问题是,是否有任何 C++ 函数可以避免单词和空格并仅从字符串中获取整数,或者我必须逐个字符地搜索字符串 here?
我只找到了部分解决方案,无法获得多个数字:
vector<int> out;
for (int i = 0; i < line.length(); i++) {
if (isdigit(line.at(i))) {
stringstream const_char;
int intValue;
const_char << line.at(i);
const_char >> intValue;
out.push_back(intValue);
}
}
【问题讨论】:
-
名字总是排在第一位吗?
-
在这个例子中是的,但是在任何地方找到解决方案都会很有用
标签: c++ string integer stdvector