![](https://csdnimg.cn/release/download_crawler_static/87264972/bg6.jpg)
v.erase(v.begin()+1,v.begin()+5);
//清空向量
v.clear();
清空完向量后,向量中一个元素都没有,即 v.size()的值为 0。
(8)使用 reverse 反向排列算法
reverse 反向排列算法,需要定义头文件“#inlcude <algorithm>”。algorithm 文件位
于 C:\Program Files\Microsoft Visual Studio\VC98\Include 文件夹中。
reverse 算法可将向量中某段迭代器区间元素反向排列,部分代码如下:
//反向排列向量的从首到尾间的元素
reverse(v.begin(),v.end());
(9)使用 sort 算法对向量元素排序
使用 sort 算法,需要声明头文件“#inlcude <algorithm>”。sort 算法要求使用随机访
问迭代器进行排序,在默认的情况下,对向量元素进行升序排列,部分如下:
//排序,升序排列
sort(v.begin(),v.end());
还可以自己设计排序比较函数,然后,把这个函数指定给 sort 算法,那么,sort 就根
据这个比较函数指定的排序规则进行排序。下面的部分代码自己设计了一个排序比较函数
Comp,要求对元素的值由大到小排序:
//自己设计排序比较函数:对元素的值进行降序排列
bool Comp(const int &a,cont int &b) {
if(a != b) return a > b;
else return a > b;
}
在 main()函数就可以用 sort 算法调用 Comp()函数:
//按 Comp 函数比较规则排序
sort(v.begin(),v.end(),Comp);
(10)向量的大小
使用 size()方法可以返回向量的大小,即元素的个数。使用 empty()方法返回向量是否
为空。
下面的部分代码演示了 size()方法和 empty()方法的用法:
//输出向量的大小,即包含了多少个元素
cout << v.size() << ednl;
//输出向量是否为空,如果非空,则返回逻辑假,即 0,否则返回逻辑真,即 1
cout << v.empty() << endl;
11.1.2 表达式树
二叉树是表达式处理的常用工具。例如,a+b*(c-d)-e/f 可以表示成如图 11-2 所示的
二叉树。
图 11-2 表达式树
其中,每个非叶结点表示一个运算符,左子树是第 1 个运算符对应的表达式,而右子树
则是第 2 个运算数对应的表达式。给表达式建立表达式树的方法很多,其中的一种方法是:
找到“最后计算”的运算符(它是整棵表达式树的根),然后递归处理。下面的函数 buildTree
是根据算术表达式来建立算术表达式树。部分代码如下: