我能够做到这一点:
template <typename T>
T add (T x, T y) {
T z = x + y;
return z;
}
int main() {
string string1 = "stack";
string string2 = "overflow";
cout << add<string> (string1, string2);
}
我得到&#34; stackoverflow&#34;。
我如何类似地使用模板函数从字符串中删除子字符串(也可以与整数,浮点数等一起使用)?例如,删除&#34;溢出&#34;来自&#34; stackoverflow&#34;。
答案 0 :(得分:1)
我如何类似地使用模板函数从字符串中删除子字符串(也可以与整数,浮点数等一起使用)?例如,从“stackoverflow”中删除“溢出”。
你可以使用像这样的简单函数来做到这一点:
gradeCombo.setModel(new DefaultComboBoxModel<Object>( TimeZone.getAvailableIds()));
会重载模板版本,该版本将适用于std::string remove(const std::string& toRemove, const std::string& original) {
std::string result(original);
size_type pos = original.find(toRemove);
if(pos != std::string::npos) {
result = original.substr(0,pos);
}
return result;
}
,float
等:
int
查看Live Demo。
要使其适用于c风格的文字,您可能需要提供另一个重载:
template<typename T> T remove(const T& toRemove, const T& original) {
return original - toRemove;
}