美文网首页
STL常用函数

STL常用函数

作者: e196efe3d7df | 来源:发表于2022-08-29 16:53 被阅读0次

以下是我在工作中用到的stl函数,如果用对了函数,可以事半功倍,也可以让自己的代码更加优雅。持续更新<2022-08-30>
完整函数库在这里,有需要可自行查阅:
https://en.cppreference.com/w/cpp/algorithm

删除vector中所有符合条件的元素

这个场景还是很常见的,面试也很常见,有人说用倒叙删除。stl中也有更优雅的方法,erase() + remove_if,简单格式如下:

std::vector<int> vec;
int conditionValue = 10;
vec.erase(std::remove_if(vec.begin(), vec.end(), [conditionValue](int value) { return value == conditionValue;}), vec.end());

std::remove_if会把vector中所有符合条件的元素都放到vector末尾,并不会删除掉这些元素,需要配合erase()才能完全清理

清理vector末尾的若干元素

如果需要清理vector末尾的一个元素,则使用pop_back()即可。那如果是删除末尾的2个以上元素呢?有人可能想到写个循环,多pop_back()几次。其实可以用resize()即可

获取vector中最大元素和最小元素

std::max_element(iter.begin(), iter.end()); // 获取最大元素
std::min_element(iter.begin(), iter.end()); // 获取最小元素
std::minmax_element(iter.begin(), iter.end()); // 同时返回 min max 的位置

删除map中所有符合条件的元素

废话不多说,直接贴官方示例:

#include <map>
#include <iostream>
 
int main()
{
    std::map<int, std::string> c =
    {
        {1, "one" }, {2, "two" }, {3, "three"},
        {4, "four"}, {5, "five"}, {6, "six"  }
    };
 
    // erase all odd numbers from c
    for (auto it = c.begin(); it != c.end();)
    {
        if (it->first % 2 != 0)
            it = c.erase(it);
        else
            ++it;
    }
 
    for (auto& p : c)
        std::cout << p.second << ' ';
}

里面主要知识点是:map.erase(it)返回的是,被移除元素的迭代器的下一个迭代器!

相关文章

  • STL常用函数

    以下是我在工作中用到的stl函数,如果用对了函数,可以事半功倍,也可以让自己的代码更加优雅。持续更新<2022-0...

  • 【Effective STL(6)】仿函数、仿函数类、函数等

    38 把仿函数类设计为用于值传递 STL函数对象在函数指针之后成型,因此STL习惯传给函数和从函数返回时,函数对象...

  • C++ STL是什么

    STL 组件主要包括容器,迭代器、算法和仿函数。STL 基本结构和 STL 组件对应。 STL 主要由迭代器、算法...

  • 蓝桥杯常用STL库函数

    其他操作 memset 使用memset初始化vector #include 需要注...

  • STL:string类的函数总结

    STL:string类的函数总结

  • 一些面试题记录

    STL1、对STL有哪些了解2、STL中的内存管理3、什么是函数对象,用在哪些情况4、用过哪些STL算法5、基本容...

  • C-常用库函数以及STL

    常用库函数 sort 位置:algorithm功能:给一个数组(或者一个 STL,这个会在第三章介绍)排序。格式:...

  • 常用STL

    lower_bound 功能:返回一个非递减序列[first, last)中的第一个大于等于值val的位置。 声明...

  • STL的常用算法函数之sort

    所有要使用STL模板库算法的程序都要包含头文件 #include 1、sort()函数 1、支持随机存取迭代器的...

  • 3-1. 顺序容器-vector

    概要 vector是stl最常用的顺序容器, 使用简单, 动态扩展, 随机访问, 在stg-stl framewo...

网友评论

      本文标题:STL常用函数

      本文链接:https://www.haomeiwen.com/subject/wedknrtx.html