#include <iostream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
std::vector<std::string> &split(const std::string &s, char delim, std::vector<std::string> &elems) {
std::stringstream ss(s);
std::string item;
while (std::getline(ss, item, delim)) {
elems.push_back(item);
}
return elems;
}
std::vector<std::string> split(const std::string &s, char delim) {
std::vector<std::string> elems;
split(s, delim, elems);
return elems;
}
int main() {
std::vector<std::string> extList= split("one:two:abcd:three", ':');
for( unsigned int i = 0 ; i < extList.size() ; i++)
{
std::cout << extList[i] << "\n";
}
return 0;
}
CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHNzdHJlYW0+CgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgoKCnN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiAmc3BsaXQoY29uc3Qgc3RkOjpzdHJpbmcgJnMsIGNoYXIgZGVsaW0sIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiAmZWxlbXMpIHsKICAgIHN0ZDo6c3RyaW5nc3RyZWFtIHNzKHMpOwogICAgc3RkOjpzdHJpbmcgaXRlbTsKICAgIHdoaWxlIChzdGQ6OmdldGxpbmUoc3MsIGl0ZW0sIGRlbGltKSkgewogICAgICAgIGVsZW1zLnB1c2hfYmFjayhpdGVtKTsKICAgIH0KICAgIHJldHVybiBlbGVtczsKfQoKCnN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBzcGxpdChjb25zdCBzdGQ6OnN0cmluZyAmcywgY2hhciBkZWxpbSkgewogICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IGVsZW1zOwogICAgc3BsaXQocywgZGVsaW0sIGVsZW1zKTsKICAgIHJldHVybiBlbGVtczsKfQoKCmludCBtYWluKCkgewoJc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IGV4dExpc3Q9IHNwbGl0KCJvbmU6dHdvOmFiY2Q6dGhyZWUiLCAnOicpOwoKCQoJZm9yKCB1bnNpZ25lZCBpbnQgaSA9IDAgOyBpIDwgZXh0TGlzdC5zaXplKCkgIDsgaSsrKQoJewoJCXN0ZDo6Y291dCA8PCBleHRMaXN0W2ldIDw8ICJcbiI7Cgl9CgkKCQoJCglyZXR1cm4gMDsKfQ==