C++ String的常见操作

  • 如何任意排序String
  • String删除操作任意字符

任意排序

排序我们可以用标准库给我们提供好的算法,或者也可以自己写排序函数,我们主要用到std::sort(),因为string类本身并没有提供排序算法。

#include 
#include 
#include 
#include 

struct {
    bool operator()(const string a, const string b)
    {
        return a.length() > b.length();
    }
}comparefun;  //给定一个函数对象,重载()

namespace std
{//重载标准库<,sort()会自动调用<
    bool operator<(const string a, const string b)
    {
        return a.length()>b.length();
    }
}
int main(int argc, const char * argv[]) {
    // 使用自定义排序函数
    array a = {"11111","1111","11","1","111"};
    sort(a.begin(), a.end(), comparefun);
    {sort(a.begin(), a.end());}    //重载标准库<,这个就要注意了
    for (auto x : a) {
        cout<

String删除操作任意字符

string提供了find()和erase()函数。删除一个字符串里的所有的空格:

    string str("abc defg 12345");
    while (str.find(' ') != string::npos) {
        str.erase(find(str.begin(), str.end(), '  '));
    }
    cout<

你可能感兴趣的:(C++ String的常见操作)