20140404 TCPL 第三章 标准库概览

前言-要是即刻就忘,何必费时去学?


没有任何一个重要程序只是用某种赤裸裸的程序设计语言写出的。首先总是要开发出一组支持库,这也就形成进一步工作的基础。


vector<T> 变长向量

list<T> 双向链表

queue<T> 队列

stack<T> 堆栈

 deque<T> 双端队列

priority_queue<T> 按值排序的队列

set<T> 集合

multiset<T> 集合,值可以重复出现

map<key, value>   关联数组

multimap<key, value> 关联数组,关键字可以重复出现


ifstream就是可以附着到文件上的istream

ofstream是可以附着到文件上的ostream


遍历和谓词 用于控制算法的函数被称为谓词。

标准库模板mem_fun() 以一个到成员函数的指针为参数,产生出某种东西,使它可以对某个指向该成员所在的类的指针调用。 


标准库提供了数十个算法,都定义在命名空间std里,在头文件<algorithm>里描述。

for_each() 对每一个元素调用函数

find() 找出参数的第一个出现

find_if() 找出第一个满足谓词的元素

count() 统计元素的出现次数

count_if() 统计与谓词匹配的元素

replace() 用新值取代元素

replace_if() 用新值取代满足谓词的元素

copy() 复制元素

unique_copy() 复制元素,不重复

sort() 对元素排序

equal_range() 找到所有具有等价值的元素

merge() 归并排序的序列


作者忠告:

1、不要像重新发明车轮那样企图做每一件事,学会去使用库。

2、要理解你的库能够做什么,它们如何做,它们做时需要多大的代价。

3、应该优先使用标准库而不是其他库

4、不要认为标准库对于任何事情都是最理想的。

5、切记#include你所用到的功能的头文件。

6、标准库的功能定义在命名空间std中。

7、使用string替代*char

8、如果要向容器中添加元素,用push_back或back_inserter

9、在main()中铺货公共的异常。



基于python实现的粒子群的VRP(车辆配送路径规划)问题建模求解+源码+项目文档+算法解析,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 算法设计的关键在于如何向表现较好的个体习,标准粒子群算法引入惯性因子w、自我认知因子c1、社会认知因子c2分别作为自身、当代最优解和历史最优解的权重,指导粒子速度和位置的更新,这在求解函数极值问题时比较容易实现,而在VRP问题上,速度位置的更新则难以直接采用加权的方式进行,一个常见的方法是采用基于遗传算法交叉算子的混合型粒子群算法进行求解,这里采用顺序交叉算子,对惯性因子w、自我认知因子c1、社会认知因子c2则以w/(w+c1+c2),c1/(w+c1+c2),c2/(w+c1+c2)的概率接受粒子本身、当前最优解、全局最优解交叉的父代之一(即按概率选择其中一个作为父代,不加权)。 算法设计的关键在于如何向表现较好的个体习,标准粒子群算法引入惯性因子w、自我认知因子c1、社会认知因子c2分别作为自身、当代最优解和历史最优解的权重,指导粒子速度和位置的更新,这在求解函数极值问题时比较容易实现,而在VRP问题上,速度位置的更新则难以直接采用加权的方式进行,一个常见的方法是采用基于遗传算法交叉算子的混合型粒子群算法进行求解,这里采用顺序交叉算子,对惯性因子w、自我认知因子c1、社会认知因子c2则以w/(w+c1+c2),c1/(w+c1+c2),c2/(w+c1+c2)的概率接受粒子本身、当前最优解、全局最优解交叉的父代之一(即按概率选择其中一个作为父代,不加权)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值