【发布时间】:2019-04-23 15:06:44
【问题描述】:
我正在尝试制作一个通用的 stringToVector 函数。
输入是一个字符串,包含多个int或逗号分隔的字符串(让我们忽略char)
例如) [1, 5, 7] 或 [conver, to, string, vector]
我想要一个这样的通用函数
template <class T>
vector<T> stringToVector(string input) {
vector<T> output;
input = input.substr(1, input.length() - 2);
stringstream ss;
ss.str(input);
T item;
char delim = ',';
while (getline(ss, item, delim)) {
if (is_same(T, int)) {
output.push_back(stoi(item)); // error if T is string
} else {
output.push_back(item); // error if T is int
}
}
return output;
}
有什么办法吗?
我知道这个功能很愚蠢,但我只是想在有竞争力的编程中使用它。
【问题讨论】:
-
你已经有
stringstream可以提取T为什么还要使用getline?就做ss>>item; -
@Slava -- 因为输入操作必须尊重逗号作为字段分隔符。