STL(Standard Template Library)是C++中的标准模板库,包含了许多常用的容器和算法,可以帮助我们快速地实现各种数据结构和算法。在本教程中,我们将介绍STL中常用的容器和算法,并给出示例代码。

容器

STL中的容器可以分为序列容器和关联容器两大类,其中序列容器包括vector、deque、list、queue、stack等,关联容器包括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中的算法包括查找、排序、拷贝等常用操作,可以帮助我们对容器进行各种操作。

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。在实际编程中,可以根据具体需求选择合适的容器和算法来完成任务。