STL常用容器和算法示例

STL(Standard Template Library)是C++中的標(biāo)準(zhǔn)模板庫(kù),包含了許多常用的容器和算法,可以幫助我們快速地實(shí)現(xiàn)各種數(shù)據(jù)結(jié)構(gòu)和算法。在本教程中,我們將介紹STL中常用的容器和算法,并給出示例代碼。

容器

STL中的容器可以分為序列容器和關(guān)聯(lián)容器兩大類(lèi),其中序列容器包括vector、deque、list、queue、stack等,關(guān)聯(lián)容器包括set、map、multiset、multimap等。

1. vector

#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec;

    // 添加元素
    vec.push_back(1);
    vec.push_back(2);
    vec.push_back(3);

    // 遍歷元素
    for (int i = 0; i < vec.size(); i++) {
        std::cout << vec[i] << " ";
    }

    return 0;
}

2. map

#include <iostream>
#include <map>

int main() {
    std::map<std::string, int> m;

    // 添加元素
    m["apple"] = 3;
    m["banana"] = 5;
    m["orange"] = 2;

    // 遍歷元素
    for (auto it = m.begin(); it != m.end(); it++) {
        std::cout << it->first << ": " << it->second << std::endl;
    }

    return 0;
}

算法

STL中的算法包括查找、排序、拷貝等常用操作,可以幫助我們對(duì)容器進(jìn)行各種操作。

1. find

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    // 查找元素
    auto it = std::find(vec.begin(), vec.end(), 3);
    if (it != vec.end()) {
        std::cout << "Found: " << *it << std::endl;
    } else {
        std::cout << "Not found" << std::endl;
    }

    return 0;
}

2. sort

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> vec = {3, 1, 4, 1, 5, 9, 2, 6};

    // 排序
    std::sort(vec.begin(), vec.end());

    // 遍歷元素
    for (int i = 0; i < vec.size(); i++) {
        std::cout << vec[i] << " ";
    }

    return 0;
}

以上是STL中常用的容器和算法示例,希望能幫助你更好地理解和使用STL。在實(shí)際編程中,可以根據(jù)具體需求選擇合適的容器和算法來(lái)完成任務(wù)。