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

发布于 2011-09-03 | 更新于 2020-09-20

命名空间:

声明一个命名空间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()的类的对象都满足函数对象的特征,因此都可以作为函数对象传递给算法作为参数使用。

本文作者: arthinking

本文链接: https://www.itzhai.comc-syntax-notes-generic-programming-and-c-standard-library.html

版权声明: 版权归作者所有,未经许可不得转载,侵权必究!联系作者请加公众号。

×
IT宅

关注公众号及时获取网站内容更新。