当前位置: 首页 > news >正文

编程日志5.19

STL(Standard Template Library)

优点:

1.提高编程效率

2.增强代码的可维护性和可读性

3.促进代码的复用

六大组件:

容器:存放数据结构,顺序表(vector)、串(string)、双端队列(deque)、链表(list)、集合(set)、哈希表(unordered_map)

算法:常用算法的封装,排序(sort)、查找(find)、遍历(traversal)

迭代器:遍历和访问容器中的元素,容器和算法的桥梁

仿函数:算法策略

适配器:用于修改或适配现有的容器或迭代器的行为,如stack和queue就是通过适配器基于底层的容器实现的

分配器:用于管理内存分配

STL容器分类

1、序列容器:按特定顺序存储

vector 顺序表:支持动态扩容也叫柔性数组,内部数据结构是连续存储的,可以随机访问,在尾部插入和删除效率高,中间插入删除效率低。

lis 双向循环列表:元素通过指针链接,在任何位置插入和删除元素,效率都较高,但随机访问效率。

deque 指针数组:数组的每个元素是一个指向一块连续内存的指针,结合了vector和list的特点,支持在两端高效的插入和删除元素,也可以随机访问。

2、关联容器:按照键的特定顺序存储和访问 set map 红黑树(本质上是平衡二叉树),增删改查时间复杂度O(log(n)),效率高。

3、容器适配器:对基本容器进行封装和适配

stack:后进先出线性表(queue、vector)

queue:先进先出线性表(queue、list)

STL常见算法:

遍历算法、最值算法、排序算法、查找算法、反转算法

冷门算法:稳定婚姻、树链剖分、后缀自动机、跳舞链、模拟退火、随机算法(不通用 无)

STL迭代器(->指针):

用于遍历容器中元素的工具

主要作用:

1、遍历容器元素  2、与算法结合使用

迭代器的类型:

输入迭代器:只能用于读取元素,只能向前移动一次。

输出迭代器:只能用于写入元素,只能向前移动一次。

前向迭代器:可以向前读取和写入元素。

双向迭代器:可以向前和向后移动,进行读取和写入操作。

随机访问迭代器:随机访问,像指针一样进行算术运算。

算法:

          vector<int> vec;

           vector<int>::iterator it;

            it++;

            int x=*it;

优点:

使得STL的容器和算法能够灵活地协同工作,提高了代码的通用性和可扩展性。

相关文章:

  • 人工智能100问☞第33问:什么是计算机视觉?
  • 遥感解译项目Land-Cover-Semantic-Segmentation-PyTorch之三制作训练数据
  • 从无符号长整型数中提取字节
  • 力扣刷题Day 56:岛屿数量(200)
  • 策略模式与责任链模式学习笔记:从入门到理解
  • 如何选择自动化编程平台
  • OpenSSL 签名验证详解:PKCS7* p7、cafile 与 RSA 验签实现
  • 【windwos】文本编辑器Notepad++ 替代品Notepad--
  • 支持向量机(SVM)例题
  • 综合实现案例 LVS keepalived mysql 等
  • 深入解析Spring Boot与Redis集成:高效缓存与性能优化实践
  • 《软件工程》第 3 章 -需求工程概论
  • vae 视频截图 复习 gans和vae的原理区别
  • 【通用智能体】Dify API 文件上传功能: 两种传参方式的API传参方式
  • 【Pandas】pandas DataFrame add_prefix
  • window 显示驱动开发-呈现开销改进
  • 系统分析师备考总结
  • Ubuntu从0到1搭建监控平台:本地部署到公网访问实战教程Cpolar穿透与Docker部署全过程
  • 加密货币犯罪的涉案金额如何计算?
  • 使用 `.inl` 文件和 `#pragma once` 解决模板函数头文件膨胀问题指南
  • 制作企业网站多少钱/惠州seo报价
  • 网站首页图片怎么更换/深圳竞价托管
  • 怎么做打赏看视频的网站/什么是seo标题优化
  • 网站建设 青少年宫/如何制作一个公司网站
  • php 网站cookie/打开百度网站首页
  • 太原在线网站制作/新闻实时报道