c++ stl的插入获取与删除

部署运行你感兴趣的模型镜像

常用 stl

  • list底层是双向链表
  • vector底层是数组

list

list常用方法

增加元素push_front/emplace_frontpush_back/emplace_back
删除元素pop_frontpop_back
获取元素引用frontback

emplace_front 和push_front 的区别在于,emplace_front可以直接构造数据放到list最前面,不用再次拷贝
emplace_back和push_back类似

删除某些元素

std::list<int> myList = {1, 2, 3, 4, 5};
    // 删除所有偶数元素
    myList.remove_if([](int n) { return n % 2 == 0; });

    // 删除所有值为3的元素
    myList.remove(3);

vector

vector常用方法

增加元素myVector.insert(myVector.begin(), value)push_back
删除元素myVector.erase(myVector.begin());pop_back
获取元素引用frontback

vector在头部增加元素或者删除元素 时间复杂度都是O(n)

删除某些元素

#include <algorithm> // for std::remove_if
std::vector<int> myVector = {1, 2, 3, 4, 3, 5};

    // 删除所有值为3的元素
    myVector.erase(std::remove(myVector.begin(), myVector.end(), 3), myVector.end());

    // 删除所有偶数元素
    myVector.erase(std::remove_if(myVector.begin(), myVector.end(),
                                  [](int n) { return n % 2 == 0; }),
                   myVector.end());

stack

常用方法

  • push(const T& value):将一个元素值拷贝后压入栈顶。
  • emplace(Args&&… args):在栈顶构造一个元素,直接使用传入的参数进行原地构造,避免了拷贝。
  • pop():移除栈顶元素,但不返回其值。
  • top():返回栈顶元素的引用,即最后被压入栈中的元素。
  • empty():如果栈为空则返回true,否则返回false。
  • size():返回栈中元素的数量。

queue

常用方法

  • push(const T& value) 或 emplace(Args&&… args):将一个元素值拷贝或移动后加入队列尾部。
  • back():返回队列尾部元素的引用,即最后被加入队列的元素
  • pop():移除队列头部的元素,但不返回其值。
  • front():返回队列头部元素的引用,即最早被加入队列的元素。
  • empty():如果队列为空则返回true,否则返回false。
  • size():返回队列中元素的数量。

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值