溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

標準模板庫STL怎么用

發(fā)布時間:2024-09-10 12:19:49 來源:億速云 閱讀:80 作者:小樊 欄目:編程語言

C++ 的 Standard Template Library (STL) 是一個高效且通用的模板類庫,包含了許多常用的數(shù)據(jù)結構和算法。要使用 STL,你需要包含相應的頭文件,并根據(jù)需要使用相應的數(shù)據(jù)結構和算法。

以下是一些基本的 STL 用法:

  1. 向量(Vector)

向量是動態(tài)數(shù)組,可以連續(xù)存儲元素并在末尾添加或刪除元素。

#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;
}
  1. 列表(List)

列表是雙向鏈表,支持在任意位置進行快速的元素插入和刪除。

#include<iostream>
#include <list>

int main() {
    std::list<int> lst;
    lst.push_back(1);
    lst.push_back(2);
    lst.push_back(3);

    for (std::list<int>::iterator it = lst.begin(); it != lst.end(); ++it) {
        std::cout << *it << " ";
    }
    return 0;
}
  1. 集合(Set)

集合中的元素按鍵值排序且不重復。

#include<iostream>
#include <set>

int main() {
    std::set<int> s;
    s.insert(3);
    s.insert(1);
    s.insert(4);
    s.insert(1); // 重復插入,不會有影響

    for (std::set<int>::iterator it = s.begin(); it != s.end(); ++it) {
        std::cout << *it << " ";
    }
    return 0;
}
  1. 映射(Map)

映射是一種關聯(lián)式容器,它存儲的元素是鍵值對,其中鍵不能重復。

#include<iostream>
#include <map>

int main() {
    std::map<std::string, int> m;
    m["apple"] = 1;
    m["banana"] = 2;
    m["orange"] = 3;

    for (std::map<std::string, int>::iterator it = m.begin(); it != m.end(); ++it) {
        std::cout << it->first << ": " << it->second << "\n";
    }
    return 0;
}
  1. 算法(Algorithm)

STL 還提供了許多常用的算法,如排序、查找等。

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

int main() {
    std::vector<int> vec;
    vec.push_back(3);
    vec.push_back(1);
    vec.push_back(4);

    std::sort(vec.begin(), vec.end());

    for (int i = 0; i < vec.size(); ++i) {
        std::cout<< vec[i] << " ";
    }
    return 0;
}

這只是 STL 的一些基本用法,實際上 STL 提供了更多的功能和算法,你可以根據(jù)需要選擇使用。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

c++
AI