C++学习笔记-抽象容器类型

TC8:SOMEIPSRV_SD_MESSAGE_07-09 TTL为服务实例的生命周期。在此生命周期之后,不提供服务实例。 阅读详情
一、
 1、删除操作
(1)erase()
slist.erase(iter);
slist.erase(first,last);//first和last都是iterator标记
(2)pop_back()
2、赋值和对换
(1)slist1=slist2;//slist1有2个元素,slist2有6个元素,则赋值后slist1有6个元素,slist2有6个元素。
(2)slist.swap(slist2);//slist1有2个元素,slist2有6个元素,则赋值后slist1有6个元素,slist2有2个元素。
3、find算法.返回位置
(1)lister=find(dlist.begin(),dlist.end(),some_double_value);
 (2)string sname;
   sring::size_type pos=sname.find("abc");
(3)sring::size_typepos=sname.find_first_of(sname2);//在sname中查找与sname2中任意一字符匹配的第一次出现
(4)sring::size_typepos=sname.find_first_of(sname2,5);//在sname的第五个位置开始查找与sname2中任意一字符匹配的第一次出现
(5)sring::size_typepos=sname.find_last_of(sname2);//在sname中查找与sname2中任意一字符匹配的最后一次出现
(6)sring::size_typepos=sname.find_last_of(sname2,5);//在sname的第五个位置开始查找与sname2中任意一字符匹配的最后一次出现
(7)sring::size_typepos=sname.find_first_not_of(sname2);//在sname中查找与sname2中任意一字符不匹配的第一次出现
(8)sring::size_typepos=sname.find_first_not_of(sname2,5);//在sname的第五个位置开始查找与sname2中任意一字符不匹配的第一次出现
(9)sring::size_typepos=sname.find_last_not_of(sname2);//在sname中查找与sname2中任意一字符不匹配的最后一次出现
(10)sring::size_typepos=sname.find_last_not_of(sname2,5);//在sname的第五个位置开始查找与sname2中任意一字符不匹配的最后一次出现
4、比较compare(),返回数字,0表示比较成功,负表示小于,正表示大于
(1)sname.compare(pos,3,sname2);//比较sname从第pos位开始的3位字符与sname2是否匹配
5、replace()替换,有十种不同的参数方式
6、assign()拷贝,append()连接,有多种不同的参数方式
sname.assign(sname2,0,4);//0-4个字符拷贝
二、
 1、一个需要动态增长的vector必须分配一定内存以便于保存新的序列、按顺序拷贝旧序列的歹毒以及释放旧的内存。如果它的元素是类对象,那么拷贝和释放内存可能需要对每个元素依次调用拷贝构造函数和析构函数。
2、容量(capacity)是指在容器下一次需要增长自己之前能够加入到容器中的元素的总数。长度是指容器当前拥有元素的个数(size)。
3、vector自我增长越频繁,元素插入的开销越大。当开销大时,转换为list或通过指针间接存储复杂的类对象。
4、容器声明
vector<string> svec;
vector<int>ivec(200);创建长度为200的容器
list<int> ilist;
5、插入方法
(1)最简单为push_back()放在队列尾部,push_front()放在队列首部。
(2)svec.insert(要插入的位置,要插入的值),如
svec.insert(slist.begin(),spouse);
svec.insert(iter,spouse);
svec.insert(iter,10,spouse);//插入相同的10个spouse变量值
svec.insert(iter,sarry+2,sarry+4);//插入字符串数组sarry中的第2个到第4个范围内的元素
svec.insert(iter,svec2.begin(),svec2.end());
6、resize()重新设置容器长度。
7、容器支持关系操作符,如<,>等等可以比较两个同类型的容器。
8、迭代器提供一种通用的方法对容器内元素进行访问。
(1)begin()返回第一个元素,end()返回最后一个元素。++iter向前移动,*iter指向元素的值。
(2)const_iterator主要用于访问const容器。
(3)将迭代器移至指定位置如:vector<int>::iteratoriter=vec.begin()+vec.size()/2;iter+=2;但是这些算术运算只适用于vector或deque,因为它们的空间是连续的。
三、
1、由单一类型元素组成的一个有序集合。
2、主要的顺序容器是LIST和VECTOR。
3、关联容器支持查询一个元素是否存在,并可以有效获取元素,两个基本的关联容器类型是MAP映射和SET集合,MAP是一个键/值对,SET是一个单一健值,multimap多映射和multiset多集合支持同一个键的多次出现。
3、vector与list和deque
(1)vectorg表示一段连续内存区域,每个元素被顺序存储在这段内存中,这样删除中间任一个,会导致后面所有元素前移复制。
(2)list表示非连续的内存区域,并通过一对指向首尾元素的指针双向链接,对随机支持不好
(3)deque表示一段连续内存区域,支持高效在首部插入和删除元素,通过两级数组实现,一级表示实际的容器,第二级指向容器的首和尾
4、顺序容器类型的准则:
(1)如果我们需要随机访问一个容器,则vector比list好
(2)如果已知存储元素的个数,vector比list好
(3)如果会在中间插入或删除元素,list好
(4)需要高效在首部插入,deque好
matplotlib保存图片设置分辨率总是96dpi,好烦躁,教你一招轻松解决 matplotlib保存图片设置分辨率总是96dpi,好烦躁,教你一招轻松解决 目录 matplotlib保存图片设置分辨率总是96dpi,好烦躁,教你一招轻松解决 #使用plt.savefig("cm.png",dpi = 300)为什么不管用 #plt.rcParams也不管用 #解决方案 在做论文的过程中,许多期刊或者会议对图片的分辨率有明确的要求,例如,dpi=300。 之前画曲线图都是采取保存方式为savefig(dpi=300),然后查看保存图片的属性信息,然而你看到的现象是 阅读详情

相关推荐

深入剖析:NAND Flash与SD NAND(贴片式SD卡)存储扇区分配表架构差异与优化策略

本文深入探讨了NAND Flash与SD NAND(贴片式SD卡)在存储技术中的架构差异及其优化策略。NAND Flash作为非易失性存储器,依赖主控芯片进行坏块管理和磨损均衡,而SD NAND则通过内置控制器和标准文件系统(如FAT)简化了存储管理。两者在写入性能、容量扩展和可靠性方面各有优劣,NAND Flash需通过磨损均衡和写入合并优化性能,而SD NAND则通过高容量和高速传输提升效率。文章为嵌入式系统开发者和硬件工程师提供了关于如何根据需求选择并优化存储介质的参考。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1240

C++抽象容器类型 一 ( vector 、list)

一、容器 一开始理解容器的时候,可以把容器看成库,都是提供一系列特定功能的。 二、常见的容器 STL标准模板库的分类: 顺序容器: vector: 向量容器 list :列表容器 deque : 双端队列容器 关联容器:查询一个元素是否存在,并且有效的获取该元素数据。 map(映射) set(集合) 哈希容器: u

Super-Father 1596

别再只会用Kriging了!用Python+GeoPandas手把手实现IDW插值(附完整代码与可视化)

本文详细介绍了如何使用Python和GeoPandas实现反距离加权插值(IDW),包括核心算法、参数调优和可视化技巧。通过完整代码示例,帮助读者掌握这一空间数据分析技术,适用于环境监测、气象预报等多个领域,提升数据处理效率和灵活性。

weixin_30872157的博客 227

【 C++ 】抽象容器类型

抽象容器数据类型 顺序容器:拥有一个单一类型元素组成的一个有序集合。两个主要的顺序容器是 list 和 vector 【第三个顺序容器为双端队列deque,它提供了与 vector 相同的行为,但是对于首元素的有效插入和删除,提供了特殊的支持。】 关联容器:支持查询一个容器是否存在,并且可以有效的获取元素。两个基本的关联容器类型是 map(映射)和 set(集合)。map是一个键/值(key/...

Ambition_HAO的博客 574

智能车图像处理12-进阶篇4--环岛辅助判断条件

主函数: 第6行: 含义是当前需要不在坡道和车库状态 第11-12行 : 寻找一下环岛的双断点(在辅助函数中) 第16-66行: 当左右线的方差满足一边很大,一边很小时,truepianfangflag /truepianfangflagforleft 置1,在环岛的判断中使用。 辅助函数: 双断点函数(左与右相似,以做为例): 第13-28行: 第一处断点 第29-40行: 第一处断点后 连续边线 第41-52行: 第一处连续后,第二处断点 第53-64行: 第二处断点后,第二处

taiyuezyh的博客 1万+

PyRoki 入门教程(二)安装与使用

PyRoki是一个用于机器人运动学优化的Python库,具有模块化设计、可扩展性和跨平台支持等特点。它支持逆运动学、轨迹优化和动作重定位等任务,采用Levenberg-Marquardt优化器提高效率。主要功能包括:基于URDF的可微分正向运动学模型、自动生成碰撞基元、通用成本因子和自定义成本函数等。PyRoki支持CPU、GPU和TPU运行,适用于从单机器人到大规模并行处理场景。目前存在一些限制,如仅支持软约束、静态形状和特定关节类型等。官方提供了多个应用示例,包括基础逆运动学、碰撞检测、轨迹优化和手部/

机器人控制与仿真应用 1252

c++Primer学习笔记(6)--抽象容器类型

第六章:抽象容器类型1:在这一章里主要是通过介绍一个文本查询系统介绍了顺序容器vector、list 和关联容器map 、set 的用法。这一章完全可以参考数据结构的书籍来学习。里面的实现过程军可以在数据结构书籍上看到,我们自己可以通过简单的C++语言来实现。个人感觉:这一章在以后的实用性上不是太大。(可能是我还接触的不深吧) 2:顺序容器指的是:拥有单一类型元素组成的一个有序集合(与数据结构的队

桑晓 欢迎你! 1594

GeoScene Pro教程(002):GeoScenePro基础操作

GeoScenePro基础操作介绍。

WwLK123的博客 2462

STL中的list容器的一点总结

From: http://www.cnblogs.com/BeyondAnyTime/archive/2012/08/10/2631191.html 1.关于list容器 list是一种序列式容器。list容器完成的功能实际上和数据结构中的双向链表是极其相似的,list中的数据元素是通过链表指针串连成逻辑意义上的线性表,也就是list也具有链表的主要优点,即:在链表的任一位置进行元

Vast_Sea的专栏 1万+

【数据集】全球湿度数据集总结

【数据集】全球湿度数据集总结

WW、forever的博客 1661

OpenHarmony 显示Display驱动全栈解析:DisplayLayer + Gralloc + Gfx 三位一体,打造高性能图形底座

OpenHarmony Display显示驱动模块是系统图形渲染和显示功能的基础组件,负责管理显示设备、图层渲染、内存分配等核心功能。该模块采用HDI(Hardware Driver Interface)设计架构,为上层图形服务提供统一的显示能力接口,实现了显示设备的初始化、图层管理、内存分配与映射、硬件加速等关键功能。DisplayLayer:负责显示图层的管理, 包括图层创建、显示属性设置、图层填充及刷新等操作;

m0_67505153的博客 317

C ++ primer plus

C++ primer 阅读笔记 文件结束符(end of file)windows是control-Z,unix是control-d while(std::cin>>i) C++是静态语言,在编译时候就执行就执行类型检查。 C++的表达能力是通过支持一些允许程序员定义新数据结构的机制来提升的。 掌握C++第一步就是学习学习语言基本知识和标准库。 ...

231

深入理解Android音视频同步机制(三)NuPlayer的avsync逻辑

本文深入介绍了NuPlayer的avsync逻辑和原理

张晖的专栏 1万+

C++的学习笔记

C++笔记

abcooxj的博客 629

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

《C++Primer》第九章-顺序容器-学习笔记(3)-容器适配器&栈&队列

《C++Primer》第九章-顺序容器-学习笔记(3) 文章目录《C++Primer》第九章-顺序容器-学习笔记(3)容器适配器适配器的初始化覆盖基础容器类型适配器的关系运算栈适配器队列和优先级队列小结参考资料注解 日志: 1,2020-03-12 笔者提交文章的初版V1.0 作者按: 最近在学习C++ primer,初步打算把所学的记录下来。 传送门/推广 《C++Primer》第二章-...

工程师小星星 641

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

C++数据结构(容器)学习笔记

算法 + 数据结构 = 程序容器,就是能够“容纳” “存放”元素的一些数据结构,就是 C++ 对数据结构的抽象和封装,容器 = 数据结构。

weixin_45548236的博客 448

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

C++学习笔记

本文总结了C++编程的核心知识点,涵盖基础语法、面向对象编程、STL使用等关键内容。主要内容包括: C++基础知识 基本数据类型、变量、运算符 程序流程控制结构 函数定义与使用 指针与引用 面向对象编程 类与对象的概念 封装、继承和多态三大特性 构造函数与析构函数 运算符重载 STL标准模板库 常用容器(vector/list/map等) 算法和函数对象 迭代器使用方法 高级特性 模板编程 文件操作 内存管理 实战示例 通讯录系统实现 常用算法应用 本文适合作为C++学习者的参考手册,内容从基础到进阶,重点

2202_75931689的博客 1518

第11章 定义一个抽象类型——向量类型

accelerated-cpp学习笔记,参考电力出版社的《Accelerated C++》翻译,这里是第11章内容。本章的内容主要在于引导实现一个标准库类型,为了实现多种数据类型的兼容,使用了模板类型,定义了一个抽象类型。介绍了如何初始化一个抽象类型、如何管理对象的复制和删除、如何实现向量类的插入操作和内存管理,并定义了向量的索引操作。

weixin_42937223的博客 755

C++学习笔记一:STL和容器

C++学习笔记一:STL和容器前言序列式容器关联式容器容器适配器 前言 STL(Standard Template Library),即标准模板库,是一个高效的C++程序库,包含了诸多常用的基本数据结构和基本算法,提供了一组表示容器、迭代器、函数对象和算法的模板。从逻辑层次来看,在STL中体现了泛型化程序设计的思想(generic programming)。大部分基本算法被抽象、被泛化,独立于与之...

qq_42018838的博客 401

《C++Primer》第九章-顺序容器-学习笔记(1)-顺序容器定义与操作

《C++Primer》第九章-顺序容器-学习笔记(1) 文章目录《C++Primer》第九章-顺序容器-学习笔记(1)摘要顺序容器的定义容器元素的初始化将一个容器初始化为另一个容器的副本初始化为一段元素的副本 日志: 1,2020-03-10 笔者提交文章的初版V1.0 作者按: 最近在学习C++ primer,初步打算把所学的记录下来。 传送门/推广 《C++Primer》第二章-变量和...

工程师小星星 387

C++学习笔记之STL容器简单介绍,容器适配器,stack容器,queue容器

STL容器简单介绍,容器适配器,stack容器,queue容器

weixin_46819249的博客 301

CPP 学习笔记

# CPP 学习笔记 可以直接下载pdf CPP 学习笔记 0.1. 多线程 0.1.1. 文件操作已经学完,今天看下多线程 0.1.1.1. 知识点1 0.1.1.2. 代码1 0.1.1.3. 知识点2 0.1.2. 知识点3 0.1.2.1. 代码3 0.2. STL 0.2.1. STL 学习,没有带笔记本回来。。。我日 2019.11.11 23:...

devil_1995的博客 779

C++之旅(学习笔记)第5章 类

本章通俗地介绍定义和使用新类型(用户自定义类型)地方式,重点介绍与具体类、抽象类和类层次结构有关的基本属性、实现技术以及语言特性。

世事易变,匪石弗转。 571

C++11_学习笔记

Vector(std::initializer_list<double>) //{1.2,12.3,111.2} 关键字virtual的意思是可能随后在其派生类中重新定义;含有纯虚函数的类称为抽象类; Vector::Vector(Vector&& a):elem{a.elem},sz{a.sz} { a.elem = nullptr; a.sz = 0;...

catwan的专栏 3844

C++学习笔记(一) 序列式容器及适配器

序列式容器 容器是存储数据的集合,序列容器则是指明它的存储方式为序列式存储。C++有三种序列式容器:vector,deque,list。其中,前两种都是顺序存储方式,第三种则是指链表。为了实现算法和容器的分离,STL提供的这几个容器都只实现了很少的操作,例如插入,删除,以及对容器本身容量的设置等,而像排序,查找之类的操作则都是由算法库去提供的。 从效率上而言,因为前两者是顺序存储,所以他可

justaipanda的专栏 1150

设计模式学习笔记2-抽象工厂

C++代码: #include <iostream> #include <cstdio> #include <string> #include <system_error> #include <vector> #include <stack> using namespace std; // 创建抽象工厂类,定义具体工厂的公共接口 class AbstractProduct; class Factory{ public: ..

shao1321的专栏 186
上一篇: 列表类设置背景图片(VC+MFC)
下一篇: C++学习笔记-抽象容器类型
deepfuture
博客等级 码龄17年 211粉丝 1287原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值