0%
这是一片思考的空间 -- arthinking
Spring 重构&代码整洁之道 软件设计 JVM 并发编程 数据结构与算法 分布式 存储 网络 微服务 设计模式
Java技术栈 - 涉及Java技术体系

C++语法笔记 - 泛型程序设计与C++标准库

命名空间:

声明一个命名空间NS

namespace NS {
class File;
void Fun();
}

引用标识符的方法:

NS :: File obj;

在新的C++标准程序库中,所有标识符都声明在命名空间std中。

头文件:

为了使用STL中的组件,必须使用#include命令包含一个或多个头文件:

< stack >

标准模板库相关概念和术语

1、容器:容器类是容纳、包含一组元素或元素集合的对象。 2、适配器:适配器时一种接口,为已有的类提供新的接口。 3、迭代器:迭代器时面向对象版本的指针,它们提供了访问容器和序列中每个元素的方法。实际上指针也是一种迭代器 4、算法:C++标准模板库中包含了70多个算法,这些算法覆盖了相当大地应用领域。 5、容器的接口:所谓接口是指容器的方法和运算符。

C++标准模板库中的容器:

顺序容器:

STL提供了向量、列表和双端队列3个顺序容器。

顺序容器的接口:

1、插入方法:push_front(),push_back() insert() 2、删除方法:pop_font(),pop_back() erase(L) clear()

向量容器:vector

双端队列容器:deque

列表容器:list

容器适配器:

容器适配器时用来扩展7中基本容器的,是修改和调整其他类接口的类。

标准栈容器:stack 标准队列容器:queue

迭代器:

迭代器是面向对象版本的指针,迭代器提供了访问容器序列中每个元素的方法。

迭代器的类型:

STL迭代器主要包括5种基本迭代器类别:输入、输出、前向、双向和随机访问,以及两种迭代器适配器:逆向迭代器适配器和插入迭代器适配器

迭代器相关的辅助函数:

advance() distance() iter_swap()

标准C++库中的算法: STL通用算法调用形式:

template <typename InputIterator, typename OutputIterator>
OutputIterator copy(InputIterator first, InputIterator last, OutputIterator result);

1、不可变序列算法 2、可变序列算法 3、排序相关算法 4、数值算法

函数对象:

函数对象时STL提供的第四类主要组件,它使得STL的应用更加灵活方便,从而增强了算法的通用性。

所谓函数对象,其实就是一个行为类似函数的对象,它可以不需要参数,也可以带有若干个参数,其功能是获取一个值,或者改变操作的状态。

在C++中,任何普通的函数和任何重载了调用运算符operator()的类的对象都满足函数对象的特征,因此都可以作为函数对象传递给算法作为参数使用。

欢迎关注我的其它发布渠道

订阅IT宅
内功修炼
Java技术栈
Java架构杂谈是IT宅精品文章公众号,欢迎订阅:
📄 网络基础知识:两万字长文50+张趣图带你领悟网络编程的内功心法 📄 HTTP发展史:三万长文50+趣图带你领悟web编程的内功心法 📄 HTTP/1.1:可扩展,可靠性,请求应答,无状态,明文传输 📄 HTTP/1.1报文详解:Method,URI,URL,消息头,消息体,状态行 📄 HTTP常用请求头大揭秘 📄 HTTPS:网络安全攻坚战 📄 HTTP/2:网络安全传输的快车道 📄 HTTP/3:让传输效率再一次起飞 📄 高性能网络编程:图解Socket核心内幕以及五大IO模型 📄 高性能网络编程:三分钟短文快速了解信号驱动式IO 📄 高性能网络编程:彻底弄懂IO复用 - IO处理杀手锏,带您深入了解select,poll,epoll 📄 高性能网络编程:异步IO:新时代的IO处理利器 📄 高性能网络编程:网络编程范式 - 高性能服务器就这么回事 📄 高性能网络编程:性能追击 - 万字长文30+图揭秘8大主流服务器程序线程模型
📄 Java内存模型:如果有人给你撕逼Java内存模型,就把这些问题甩给他 📄 一文带你彻底理解同步和锁的本质(干货) 📄 AQS与并发包中锁的通用实现 📄 ReentrantLock介绍与使用 📄 ReentrantReadWriteLock介绍与使用 📄 ReentrantLock的Condition原理解析 📄 如何优雅的中断线程 📄 如何优雅的挂起线程 📄 图解几个好玩的并发辅助工具类 📄 图解BlockingQueue阻塞队列
📄 消息队列那么多,为什么建议深入了解下RabbitMQ? 📄 高并发异步解耦利器:RocketMQ究竟强在哪里? 📄 Kafka必知必会18问:30+图带您看透Kafka
📄 洞悉MySQL底层架构:游走在缓冲与磁盘之间 📄 SQL运行内幕:从执行原理看调优的本质 📄 洞悉Redis技术内幕:缓存,数据结构,并发,集群与算法