python的split确实是很香的功能。
写c++的时候,就会想着,要是能直接input().split()那不挺好。
实际上真的可以:自己动手,丰衣足食。
先放成品展示。
int main(){
auto k=input().split();//k的类型是vector<string>
cout<<k<<endl;
}
完整代码在文章末尾。
1.首先,写一个input()不难,getline+return就行
mystring input(string c=""){
cout<<c;
mystring s;
getline(cin,s);
return s;
}
为什么是mystring呢?因为我们想要实现input().split()的效果。普通的string不能胜任,所以自己构造一个mystring的类(具体往下看)
#本文作者XXOY
2.写一个split()函数。
考虑到便捷性,直接把它写成成员函数。
这个mystring类就继承string类。写成class mystring:public string也行。
用struct主要是应为加入的成员函数都是public。
实现部分就爆扫过去,扫到ch(默认空格)就记录位置,然后插入到一个vector<string>里
struct mystring:string{
//继承string类,写成class mystring:public string也行
mystring() :string() {
}
mystring& operator=(const string &c) {
(*this).assign(c);
return *this;
}
vector<string> split(char c=' '){
vector