STL array 和stack 以及set容器

2022-12-01  本文已影响0人  arkliu

array

//初始化
void fun() {
    array<int,3>arr1;
    array<int,3>arr2{};

    array<int,3>arr3{1,2,3};

    array<int,3>arr4(arr3);

    array<int,6>arr5({1,2,3});

    array<int,3>arr6={arr4};

    arr1 = arr3;

    arr2.fill(123);
    get<0>(arr2) = 456;
    cout << arr2[0]<<"----"<<arr2[1]<<"----"<<arr2[2]<<endl;
}

void fun1() {
    array<int,3>arr1{1,2,3};
    array<int,3>arr2;
    array<int,3>arr3{4,5,6};
    array<int,3>arr4{1,2,3};
    cout <<(arr1 == arr4)<<endl;// 大小相同,逐值比较

    cout <<arr1.empty()<<"--"<<arr1.size()<<"---"<<arr1.max_size()<<endl;
    cout <<arr2.empty()<<"--"<<arr2.size()<<"---"<<arr2.max_size()<<endl;
    cout <<arr1.at(0) <<"---"<<get<1>(arr1) <<"---"<<arr1[2] <<endl;

    arr3.swap(arr1);
}

//迭代器
void fun2() {
    array<int,3>arr1{1,2,3};

    /**
     * begin()/end();
     * cbegin()/cend(); cbegin中的c表示const,不允许通过迭代器修改元素
     * rbegin()/rend();  逆向迭代器
     * crbegin()/crend();  
    */
    array<int,3>::iterator start;
    start = arr1.begin();

    array<int,3>::iterator end = arr1.end();
    while (start!=end)
    {
        cout <<*start<<endl;
        start++;
    }
}

stack

常用api

#include <stack>
//初始化
void fun() {
    stack<int>s1;
    s1.push(1);
    s1.push(2);
    s1.push(3);
    stack<int>s2(s1);

    stack<int>s3;
    cout <<s2.empty()<<"---"<<s2.size()<<endl;
    cout <<s3.empty()<<"---"<<s3.size()<<endl;
}

set

#include <set>

//初始化
void fun() {
    set<int>s1;
    set<int>s2{1,2,3,4,5,6,7};
    set<int>s3{};
    set<int>s4(s2);
    set<int>s5={s2};

    set<int>s6;
    s6 = s5;
    s1.swap(s2); // 交换两个集合

    for(auto start = s2.begin(); start != s2.end(); start++) {
        cout <<*start<<",   ";
    }
    cout <<endl;
}

void fun2() {
    set<int>s1{3,4,2,10,1,6};
    s1.insert(5);
    for(auto start = s1.begin(); start != s1.end(); start++) {
        cout <<*start<<",   ";
    }
    cout <<endl;

    auto it = s1.find(33);
    if (it == s1.end())
    {
        cout <<"没找到。。"<<endl;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读