BOOST_FOREACH;
BOOST_REVERSE_FOREACH;string str("zpp");
BOOST_FOREACH(char &c,str);//遍历容器
{
cout<<c<<","; 结果z,p,p
}
vector<int>v=(list_of(1),2,3,4);
BOOST_FOREACH(int x,v);//遍历vector容器
{
cout<<x<<","; 结果1,2,3,4
}
string str("zpp");
BOOST_FOREACH(char &c,str);//遍历容器
{
cout<<c<<","; 结果z,p,p
}
-------------------------------------------------------------------------------------------------
对STL中的min/max,min_element/max_element的增强,一次处理中同时获得最大最小值(同时返回min,max)。
效率提高
例如:
int a,b;
tie(a,b)=minmax(5,3);也可以提供函数对象:
tie(a,b)=minmax(s1,s2,compme());
Min_element()算法组:
first_min_element()
last_min_element()
first_min_first_max_element()
first_min_last_max_element()
minmax_element()等等
----------------------------------------------------------------------------------------------------------数学领域的4个库
integer:整数处理的类:例如编译期计算min,max,log2等
rational:有理数(分数)
例如:
rational<int>a(31415,10000);//分数3.1415
rational<int>pi(22,7);圆周率cout<<a.numerator();分子 只读不写
cout<<a.denominator();分母 只读不写
crc:循环冗余校验码
产生随机数的速度:高---->低
随机数质量和内存:低---->高
什么是伪随机数发生器?
并不是真正的随机数,而是一个非常大的循环周期
(例如mt19937的循环周期2^19937-1),真随机数无法用纯软件产生。提供15个分布,部分如下:
uniform_01 [0,1]实数连续均匀分布
uniform_real [min,max]上的实数连续均匀分布
bernoulli_distribution 伯努利分布
binomial_distribution 二项分布
cauchy-... 柯西分布
gamma_... 伽马分布
poisson_...
geometric_... 几何
triangle_... 三角
exponential_...指数
normal_...正态
lognormal_...对数正态