我试图将( 1 + 2 )
这样的字符串拆分为一个向量,当使用istream_iterators<string>
时,它不会拆分括号,所以我得到了像
(1 , + , 2)
当我需要( , 1, + , 2 ,)
是否可以使用istream_iterator
来实现此目的?
string eq = "(1 + 2)";
istringstream ss(eq);
istream_iterator<string> begin(ss);
istream_iterator<string> end;
vector<string> vec(begin, end);
答案 0 :(得分:1)
您可以通过创建自定义类型$(".input").html("test").trigger('change');
并将其与之一起使用来执行此操作
//remove rows with instances of "5/13/2013"
for (int i = 0; i < tableModel.getRowCount(); i++) {
if (((String)tableModel.getValueAt(i, 0)).equals("5/13/2013")) {
tableModel.removeRow(i);
}//end of if block
}//end of for block
。额外功能:此代码将解析多个数字,多个运算符和嵌套表达式。好享受吧。 :)
Token
答案 1 :(得分:0)
我认为你不能使用istream_iterator
来做到这一点。相反,只需手动完成:
vector<string> vec;
vec.reserve(eq.size() / 4); // rough guess
bool in_number = false;
for (char ch : eq) {
if (isspace(ch)) {
in_number = false;
} else if (isdigit(ch)) {
if (in_number) {
vec.back().push_back(ch);
} else {
vec.emplace_back(1, ch);
in_number = true;
}
} else {
vec.emplace_back(1, ch);
in_number = false;
}
}