STL 容器和迭代器基础

C++STL学习笔记(第一篇:stl是什么?为什么要学习stl?迭代器在stl中扮演着什么角色?) c++STL入门 阅读详情

容器

1. 序列式容器  每个元素都有固定的位置

    1) vector   dynamic array 在尾部存取速度快  其他位置速度慢 因为要移动元素

         push_back()    pop_back()

 

    2) deque   dynamic array 在头部和尾部存取速度快 其他位置速度慢 因为要移动元素

        push_back()   push_front()   pop_back()   pop_front()

 

    3) list        doubly linked list  存取速度慢 但是删除插入速度快

        push_back()  

 

2. 关联式容器  元素的位置取决于排序准则  是已续的  一般通过2叉排序树实现

    4) set             insert()

    5) multiset     允许重复

    6) map           insert()  iter->first  iter->second

    7) multimap    允许重复

 

 

迭代器

1. 只读迭代器   vector<int>::const_iterator

2. 读写迭代器   vector<int>::iterator

 

operator*

operator++

operator==

operator!=

operator=

 

 

begin()  第一个元素

end()     最后一个元素之后的位置

半开半闭区间

 

例子:

STL简单迭代器的实现 介绍博客:http://blog.youkuaiyun.com/chengonghao/article/details/51360792 立即下载

相关推荐

【学习笔记-QGIS】 QGIS从零快速上手

安装文章参考:https://zhuanlan.zhihu.com/p/370633306。

Xcong_Zhu的博客 1万+

STL迭代器详解

文章目录1. 迭代器(iterator)是一种智能指针(smart pointer)2. 迭代器相应类型(associate types) 不同于OOP(Object Oriented Programming)将数据(datas)和行为(methods)组织在一起的思想,STL的中心思想GP(Generic Programming)在于:将数据容器(containers)和算法(algorithms)分开,彼此独立设计,最后再以胶着剂将它们撮合在一起。那么之间的胶着剂就是迭代器(iterator)。

To the beyond and infinity! 2779

Hodgkin-Huxley Model

介绍了经典的动力学模型:HH Model

weixin_73557167的博客 2474

【C++】STL常用容器总结之一:容器与迭代器

声明: 1、本博文主要整理自《C++ Primer》和《STL源码剖析》这两本经典书籍。同时,也参考了网络中不少优秀博客,对这些博客的作者表示感谢。 2、由于博主能力有限,对于一些容器的用法可能尚未进行深入研究。因此,本博文若有错误和不足之处,欢迎大家批评指正。 3、本博文仅作学术交流只用,无任何其他用途。言归正传,下面开始介绍C++中的STL容器。1、容器的概念 Standard Temp

长相忆兮长相忆的专栏 9929

YOLOv8缺陷检测可视化界面实战:PyQt5布局设计与代码实现

本文详细介绍了如何利用PyQt5为YOLOv8缺陷检测模型构建一个专业、易用的可视化界面。通过实战讲解PyQt5的布局管理器设计、信号槽机制与YOLOv8核心的集成,帮助开发者快速将AI模型部署为直观的桌面应用,提升工业质检等场景的落地效率。

redis7keeper的博客 758

大数据领域数据产品的交通运输行业应用

您是否经历过早高峰被堵在桥上,看着导航显示“前方5公里缓行”却无能为力?是否见过货车司机绕远路导致成本飙升?这些“交通痛点”的背后,是传统交通管理依赖经验决策的局限。本文将聚焦“大数据数据产品”这一核心工具,从技术原理到实际应用,全面解析它如何为交通运输行业“开天眼”,解决从城市拥堵到物流效率的一系列难题。本文将按照“问题引入→概念拆解→技术原理→实战案例→应用场景→未来趋势”的逻辑展开,用生活化比喻降低理解门槛,用代码和数学模型提升专业性,最终帮您建立“大数据+交通”的完整认知框架。交通数据。

操作系统内核探秘的博客 237

STL容器类和迭代器

STL容器类介绍 容器,顾名思义就是盛放东西的东西,如盛饭的饭碗就是一个容器,这样的容器c++库也为我们提供了,只是不能用来盛饭。在程序中只有数据和数据处理方法,数据和方法结合在一起就形成了类或对象,在面向对象的语言中流行一切皆是对象,要有对象首先肯定要有类,用来存放对象的类就叫容器类,简称容器。 计算机的运行时数据只能存放在内存中,而容器类就是用做容器的内存管理方法。容器的内涵就是数据结构(数据打包的方法)+算法(数据处理方法)。 容器其实我们早就接触...

习惯有你 428

AI智能体在零售行业的5大变革性应用

本文旨在全面介绍AI智能体在零售行业的关键应用场景,分析其技术原理和商业价值,帮助读者理解这些技术如何改变传统零售模式。文章将从核心概念入手,逐步深入五大应用场景的技术实现,最后探讨未来趋势和挑战。AI智能体:能够感知环境、做出决策并执行行动的智能软件实体机器学习:让计算机从数据中学习模式而无需显式编程的技术深度学习:基于神经网络的机器学习方法,能够处理复杂模式识别核心概念回顾AI智能体是零售数字化转型的关键驱动力从推荐系统到库存管理,AI正在重塑每个零售环节。

AI 原生应用开发的博客 1351

STL迭代器

目录 一、迭代器 基本概念 (1)内置迭代器的使用 (2)自己模拟迭代器的实现 (3)流型迭代器 二、lambda表达式 (1)基本概念 (2)捕获方式的区别 三、仿函数 包含头文件functional 基本概念 使用 四、函数适配器 包含头文件functional (1)普通函数绑定 (2)类内成员函数绑定 (3)占位符表示原来的参数去第几位 五、函数包装器 包含头文件functional (1)包装普通函数 (2)包装成员函数和静态函数 (3)包装仿函数 ...

weixin_61438881的博客 3334

JavaFX 概述

要从 JavaFX 中充分受益,了解 JavaFX 的设计方式以及对 JavaFX 包含的功能有一个很好的概述是很有用的。本文的目的是为您提供 JavaFX 概述。本文将首先介绍一般的 JavaFX 设计,然后介绍 JavaFX 中的各种特性。如果您熟悉 Flash/Flex,您会发现 JavaFX 在某种程度上受到了 Flash/Flex 的启发。JavaFX 中也有一些相同的想法。一般来说,JavaFX 应用程序包含一个或多个对应于窗口的阶段。每个阶段都有一个场景。

2012年开始工作,全栈开发老兵,目前已是一个老师,分享这么多年的心得体会 407

从 SAP BTP trial 到第一个 CPI iFlow 的实操路线图

本文介绍了如何从零开始学习SAP CPI(现称SAP Integration Suite中的Cloud Integration能力)。主要内容包括:1)明确学习边界,建议使用SAP BTP trial账号进行个人练习,注意90天有效期限制;2)理解SAP BTP账号模型层级结构(Global Account→Subaccount→Space);3)详细说明申请trial账号流程,推荐选择Singapore区域以避免兼容问题;4)指导如何检查Entitlements和Quotas,强调应专注于SAP Inte

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 167

遍历容器:迭代器、基础 for 循环(范围 for 循环)、以及 STL 中的 `for_each` 算法

迭代器、基础 for 循环(范围 for 循环)、以及 STL 中的 `for_each` 算法

深耕嵌入式领用多年, 致力于分享嵌入式领域技术! 1356

【C++】【STL算法】数据窄化及代码安全性

本文系统探讨了C++工程中数据窄化(narrowing conversion)的隐患与解决方案。数据窄化指将高精度/大范围类型转换为低精度/小范围类型,虽语法合法但会导致静默精度损失。其危险性体现在:错误隐蔽、STL会放大问题、数值错误具有传播性。现代C++要求窄化必须显式声明,文中提出四种工程解决方案:显式转换、边界统一转换、范围检查转换和使用GSL工具。建议在系统边界集中处理窄化,保持计算链路类型一致性,并通过分层策略(建模用double,控制用float)确保数值稳定性。核心思想是让窄化成为清晰可控的

Double Galaxy 80

C++语言基础 —— STL —— 容器与迭代器

【概述】 STL 是指 C++ 标准模板库,是 C++ 语言标准中的重要组成部分,其以模板类和模版函数的形式提供了各种数据结构与算法的精巧实现,如果能充分使用 STL,可以在代码空间、执行时间、编码效率上得到极大的提高。 STL 大致可以分为三大类:容器(Container)、迭代器(iterator)、算法(algorithm)。 STL 容器是一些模板类,提供了多种组织数据的常用方法,例...

Alex_McAvoy的博客 1109

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

STL理论基础、容器、迭代器、算法

一、STL基本概念 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。 STL的从广义上讲分为三类:算法(algorithm)、容器(container)和迭代器(iterator),容器和算法通过迭代器可以进行无缝地连接。几乎所有的代码都采用了模板类和模板函...

weixin_30457465的博客 268

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C++语言基础 —— STL —— 容器与迭代器 —— vector

【概述】 vector 是定义在 <vector> 头文件中的向量容器模版类,其以连续数组的方式存储元素序列,可以将 vector 看作是以顺序结构实现的线性表。 当在程序中需要使用动态数组时,vector 是一个理想的选择,其在使用过程中动态地增长存储空间,存取任何元素都能在参数时间内完成,但若在结尾插入,效率比较高,若往中间某个位置插入,则其插入位置后的元素都要后移,效率相对较...

Alex_McAvoy的博客 626

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

STL:基本理论基础容器-算法-迭代器概念

一.概念 STL(标准模板库):从广义上分为:容器(container)、算法(algorithm)、迭代器(iterator),容器和算法之间通过迭代器进行无缝连接,STL几乎所有代码都采用了模板类和模板函数,相比较传统的由函数和类组成的库来说提供了更好的代码重用机会。 STL的一个重要特点是数据结构和算法分离。 1.容器 序列式容器:容器的元素的位置是由进入容器时间和地点来决定。(先进容器,就现在前面) 关联式容器:按规定排序。(类似于按照人类按照大小个子排顺序) 2.迭代器 用于遍历容器元素的

weixin_44190648的博客 1032

STL(标准模板库)理论基础,容器,迭代器,算法

基本概念         STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。         STL的从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),容器和算法通过迭代器可以进行无缝地连接。几乎所有的代码

yofer张耀琦的专栏 3084

C++语言基础 —— STL —— 容器与迭代器 —— map 与 multimap

【概述】 map 和 multimap是映射数据容器,两者均定义与 <map> 头文件中,其所有元素都是 pair,pair 的第一个元素被视为键值,第二个元素为实值。 他们是基于某一类型 Key 的键集的存在,提供对 TYPE 类型的数据进行快速和高效的检索,具体实现采用了一颗红黑树的平衡二叉树的数据结构,这颗树具有对数据自动排序的功能,所以在 map 内部所有的数据 Key ...

Alex_McAvoy的博客 792

stl容器--总结

STL主要包含容器、算法、迭代器三大核心部分; 序列式容器中的元素顺序与元素值无关,只与元素插入的次序和存放位置有关;三种序列式容器,即Vectors(向量)、Deque(双向队列)和List(双向链表)。 vector:向量容器; 关联式容器中的元素位置是按元素值的大小自动排序的,缺省情况下为升序排列。其元素顺序与元素值有关,与元素插入的先后次序无关。关联式容器的底层实现是二叉搜索树的形式

无兴趣,不编程 1854

C++语言基础 —— STL —— 容器与迭代器 —— list 与 deque

【概述】 list 与 deque 是在程序设计中会用到的数据容器,STL提供了方便的链表、双端队列的实现,准确地说,STL 中的 list 与 deque不同于 pair、vector 等容器,而是对列表和双端队列这两个数据结构的重新包装。 【list 的使用】 list 定义在 <list> 头文件中,其提供了双链表的全部功能,即是一个线性链表结构,无需分配内存且可任意伸...

Alex_McAvoy的博客 498

STL 基础入门

class Person {//Person数据类型public:int m_Age;//向容器中添加数据//遍历容器中的数据it!= v.end();it++) {//*it 是Person的数据类型//两种方式都可以//存放自定义数据类型的指针//向容器中添加数据//尾插法//遍历容器it!= v.end();it++) {//*it是Person类型的指针//test01();test02();return 0。

2301_81507539的博客 360

STL中的迭代器举例详解

介绍了STL中的迭代器访问容器和迭代器配合算法去访问容器,容器介绍了存储基础类型的容器和存储自定义类型的容器以及存储容器的容器。

qq_45652092的博客 673

深入探究C++中的STL:容器、迭代器与算法全解析

本文主要介绍了C++ STL(Standard Template Library)中的三个核心组件:容器、迭代器和算法。容器是用于存储和管理数据的对象,包括vector、list、set、map等。而迭代器是容器的访问方式,用于遍历容器中的元素。最后介绍了STL算法的基本分类、应用场景以及性能优化技巧等。STL是C++编程中常用的重要部分掌握其知识对于提高程序开发效率和编程能力至关重要。

BXA 2343

STL

STL从广义上分为 容器 算法 迭代器 和算法之间通过迭代器进行无缝连接 容器中可以嵌套容器 容器分为序列式容器和关联式容器 迭代器可以理解为是用来遍历容器的指针,默认指向第一个位置,事实上,迭代器是一个类,这个类封装了一个指针 迭代器相当于算法与容器之间的桥梁,给算法传入迭代器 // 容器迭代器分离实现.cpp: 定义控制台应用程序的入口点。 // #include "stdafx.h" #i...

庸人自扰 171

STL简介与string容器

it!= v.end();it++)it!= v.end();it++)

2302_79866417的博客 174
上一篇: auto_ptr 智能指针要点
下一篇: STL 算法基本概念
rommi
博客等级 码龄21年 44粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值