1、C++ 17新引入std::string_view使用介绍,std::string_view是原始字符串的视图,如果在查看std::string_view的同时修改了字符串,或者字符串被消毁,那么将是未定义的行为。
std::string_view比std::string的性能要高很多,因为每个std::string都独自拥有一份字符串的拷贝,而std::string_view只是记录了自己对应的字符串的指针和偏移位置。当我们在只是查看字符串的函数中可以直接使用std::string_view来代替std::string
2、 strtok不能直接处理string 类型变化,需要通过strdup中转为char *, 因为str.c_str()是const char*类型, 参考c++ - Using strtok with a std::string - Stack Overflow
char *dup = strdup(str.c_str());
token = strtok(dup, " ");
free(dup);