您的位置:首页 > 编程语言 > C语言/C++

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的学习主要包括三个阶段,第一个阶段能够了解并且熟悉标准库;第二个阶段学会在适当的场景使用标准库;第三个阶段了解标注库的实现以及各类算法的复杂度。最后在此基础上对标准库进行扩展,后续将会对每一类标准库容器以及算法进行分析,学习标准库的设计思想。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐