C++程序设计语言学习笔记(三)
2013-07-09 23:55
267 查看
C++程序设计语言
该书主要介绍C++语言的基础以及如何利用它进行程序设计。学习任何一本语言如果只沉浸在语言本身特征,你的收获会比较小,关键是程序设计思想。里面提到的一句话很重要“对于程序语言设计和设计技术的理解远比细节的理解更重要,而这种理解的根本是时间和实践”。一般程序设计都会有三个过程:分析、设计、编码。一般程序员开始的时候花在分析和设计上的时间较少,开发之初就上手编程,容易照成后期维护修改比较困难,这种程序员一般用10%分析,20%设计,30%编码,40%找bug加维护;对于一个高级程序员来说会花40%分析,40%设计,20%编码加维护。第二部分:标准库
标准库
标准容器vector
list
deque
stack
queue
priority_queue
map
multimap
set
multiset
拟容器
string
valarray
bitset
函数对象
重载了函数运算符(即())的对象称之为函数对象
谓词
返回值为bool类型的函数对象称之为谓词
适配器:提供对函数对象的变形
他们都以函数对象作为输入,返回另外的函数对象
算法
非修改性序列算法
for_each
find
find_if
count
count_if
equal
mismatch
search
search_n
find_end
修改性算法
copy
copy_backward
transform
unique
unique_copy
replace
remove
fill
generator
reverse
roate
random_shuffle
swap
排序序列
sort
stable_sort
partial_sort
binary_search
merge
partition
includes
set_union
set_intersection
set_difference
堆
push_heap
pop_heap
make_heap
sort_heap
最大最小算法
max
min
max_element
min_element
排列
next_permutation
prev_permutation
迭代器和分配器
迭代器:提供一种数据访问方式,连接容器和算法的纽带,使得写算法的人不必关心多样的数据类型分配器:提供一种映射,将低级的数组或者字节形式的数据模型映射到高级对象模型
迭代器类型
输出:out
输入:in
前向:for
双向:bi
随机:ran
插入器
反向迭代器
流迭代器
带检查的迭代器
分配器
将容易或者算法的实现隔离与物理存储之外,一个分离器提供了一套分配和释放存储的标准方式以及用作指针类型和引用类型的标准名字
标准分配器
用户自己定分配器
串
string流
数值
数值的限制需要include <limits>
numeric_limits<T>::min\max
numeric_limits<double>::epsilon()
标准数学函数
向量算术
valarray:设计目标 高效的利用计算机性能,目标高效
复数运算
通用数值算法
accumulate
inner_product
partial_sum
adjacent_difference
随机数
srand:初始化种子
rand:产生随机数
总结:STL的学习主要包括三个阶段,第一个阶段能够了解并且熟悉标准库;第二个阶段学会在适当的场景使用标准库;第三个阶段了解标注库的实现以及各类算法的复杂度。最后在此基础上对标准库进行扩展,后续将会对每一类标准库容器以及算法进行分析,学习标准库的设计思想。
相关文章推荐
- C_PlusPlus学习笔记 - 1_C++简单程序设计 (C++语言程序设计【第三版】 郑莉等,清华大学出版社)
- C_PlusPlus学习笔记 - 0_绪论 (C++语言程序设计【第三版】 郑莉等,清华大学出版社)
- C_PlusPlus学习笔记 - 2_函数 (C++语言程序设计【第三版】 郑莉等,清华大学出版社)
- C++程序设计语言学习笔记(一)
- C_PlusPlus学习笔记 - 6_继承与派生(C++语言程序设计【第三版】 郑莉等,清华大学出版社)
- C++程序设计语言特别版 学习笔记(0)
- C_PlusPlus学习笔记 - 5_数组、指针和字符串 (C++语言程序设计【第三版】 郑莉等,清华大学出版社)
- C_PlusPlus学习笔记 - 3_类与对象 (C++语言程序设计【第三版】 郑莉等,清华大学出版社)
- C++程序设计语言学习笔记(二)
- C_PlusPlus学习笔记 - 4_C++程序结构 (C++语言程序设计【第三版】 郑莉等,清华大学出版社)
- C程序设计语言学习笔记(1)
- 【C++】【学习笔记】【001】CPP语言与OO思想介绍
- C程序设计语言(K&R)学习笔记--8.结构体
- C++语言程序设计笔记(3)
- C程序设计语言学习笔记(3)
- C程序设计语言(K&R)第三章学习笔记
- Python语言程序设计-学习笔记2:Python编程之基本方法
- BMP文件学习笔记(一): C/C++语言实现.bmp文件读写
- 钱能C++程序设计教程第10章继承学习笔记
- C程序设计语言学习笔记(2)