std::swap()中执行了拷贝操作和赋值操作,都是默认实现,所以还是有交换的效果的。
但是string_view显然没有这样的需求,它本身不占有资源。那复制就好了,交换还是置空徒增开销。
s.assign("nico",3);//把’n’ ‘I’ ‘c’赋给字符串s.assign("nicoafdad",2,5);//从二开始数五个s.assign(5,’x’);//把五个x赋给字符串 2.两个字符串关系:交换swap( ) 比较字符串 ==,!=,< , <= , > , >= , ,compare( ) a.swap(b); //结果为 b="12345678"; a="ABCD"...
string的交换: void swap(string &s2); //交换当前字符串与s2的值 string类的查找函数: int find(char c, int pos = 0) const;//从pos开始查找字符c在当前字符串的位置 int find(const char *s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置 int find(const char *s, int pos,...
使用std::string的swap()函数交换两个字符串的内容: 需要注意的是,在使用std::string时,应该避免使用C风格的字符串函数,如strcpy()、strcat()等,因为它们可能会导致内存泄漏或缓冲区溢出等安全问题。同时,也应该避免使用std::string的构造函数或成员函数来创建或操作字符串,因为这些函数可能会导致性能问题或内存泄...
void swap(string &s2); //交换当前字符串与s2的值 string类的查找函数: int find(char c, int pos = 0) const;//从pos开始查找字符c在当前字符串的位置 int find(const char *s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置 ...
swap(std::basic_string<CharT, Traits, Alloc>&lhs, std::basic_string<CharT, Traits, Alloc>&rhs)noexcept(/* see below */); (C++20 起) 为std::basic_string特化std::swap算法。交换lhs与rhs的内容。等价于lhs.swap(rhs)。 参数 lhs, rhs-要交换内容的 string ...
string &replace(iterator first0, iterator last0,const_iterator first, const_iterator last);//把[first0,last0)之间的部分替换成[first,last)之间的字符串 8、获得字串substr方法: string substr(int pos = 0,int n = npos) const;//返回pos开始的n个字符组成的字符串 9、交换swap的方法:...
b) swap() //交换两个字符串的内容 c) +=,append(),push_back() //在尾部添加字符 d) insert() //插入字符 e) erase() //删除字符 f) clear() //删除全部字符 g) replace() //替换字符 h) + //串联字符串 i) ==,!=,<,<=,>,>=,compare() //比较字符串 ...
substr()返回本字符串的一个子串,从index开始,长num个字符。如果没有指定,将是默认值 string::npos。这样,substr()函数将简单的返回从index开始的剩余的字符串。 交换(swap) 语法: void swap( basic_string &str ); swap()函数把str和本字符串交换。