C++ STL快速应用

STL 容器

        STL容器有共同的操作接口,包括初始化操作、判空、查看大小、比较元素、销毁、交换,这些操作都是一样的接口。

        对于访问遍历元素(增删改查),都可以使用迭代器(正向)进行操作,大部分容器支持反向迭代器。另外像Array、vector、string、map、unordered_map支持下标[]操作访问操作元素。

        另外容器类型的使用,如vector<int>::iterator。

 

STL算法

        STL算法都是使用迭代器来实现,需要注意的是有些操作会使原有的迭代器失效。经常用到算法一般有查找find、排序sort等。

        迭代器使用虽然通用,但是像vector、map、string我们通常使用下标操作,但是下标又不能用于算法接口,但如果想混用下标、迭代器、算法,还是可以的。比如想删除某个key的元素,可以先find这个key的元素,然后使用算法erase删除该find返回的迭代器指向的元素。

        例如:

#include <iostream>
#include <unordered_map>

int main() {
    std::unordered_map<std::string, int> myMap = {
        {"apple", 1},
        {"banana", 2},
        {"orange", 3},
    };

    std::string keyToDelete = "banana";

    // 查找指定的 key
    auto it = myMap.find(keyToDelete);

    // 如果找到了要删除的 key,则执行删除操作
    if (it != myMap.end()) {
        myMap.erase(it);
        std::cout << keyToDelete << " has been removed from the map." << std::endl;
    } else {
        std::cout << keyToDelete << " was not found in the map." << std::endl;
    }

    // 输出剩余的 key-value 对
    for (const auto& pair : myMap) {
        std::cout << pair.first << ": " << pair.second << std::endl;
    }

    return 0;
}

 附图:STL容器的共同操作

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weisonx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值