C++常用库函数

1. max_element 和 min_element


struct MaxTestStru {
    string name;
    int age;
};

class LibFunctionTest {
public:
    static bool AgeMax(const MaxTestStru& a, const MaxTestStru& b)
    {
        return a.age < b.age;
    }
    static bool NameMax(const MaxTestStru& a, const MaxTestStru& b)
    {
        return a.name < b.name;
    }

    void MaxElementTest() {
        vector<int> data = {1, 9, 10, 8, 6, 20, 5};
        int max = *max_element(data.begin(), data.end());
        int min = *min_element(data.begin(), data.end());
        cout << "max: " << max << " min:" << min << endl;
        vector<MaxTestStru> dis = {{"zhang", 18},
                                   {"li",    20},
                                   {"wang",  35},
                                   {"Angle", 60}};
        MaxTestStru ageMax =  *max_element(dis.begin(), dis.end(), AgeMax);
        MaxTestStru nameMax = *max_element(dis.begin(), dis.end(), NameMax);
        cout<<"ageMax:" << ageMax.name << " " << ageMax.age << endl;
        cout<<"nameMax:" << nameMax.name << " " << nameMax.age << endl;
    }

};

 

  输出:

max: 20 min:1
ageMax:Angle 60
nameMax:zhang 18

 

2. iota 连续赋值

    void iota_Test(){
        std::vector<double> data(9);
        int initial {-3};
        std::iota (std::begin (data) , std::end (data) , initial);
        std::copy(std::begin(data), std::end(data),std::ostream_iterator<double>{std::cout<< std::fixed << std::setprecision(1), " "});
        std::cout << std::endl;
        string text {"hello word"};
        std::iota(std::begin(text), std::end(text), 'A');
        std::cout << text << std::endl;
    }

输出:

-3.0 -2.0 -1.0 0.0 1.0 2.0 3.0 4.0 5.0 
ABCDEFGHIJ

3. 字符判断

islower(char c) 是否为小写字母
isupper(char c) 是否为大写字母
isdigit(char c) 是否为数字
isalpha(char c) 是否为字母
isalnum(char c) 是否为字母或者数字
toupper(char c) 字母小转大
tolower(char c) 字母大转小

 

posted on 2022-05-05 22:54  蜀山菜鸟  阅读(217)  评论(0)    收藏  举报