iter_swap() :元素替换
void iter_swap(_FwdIt1 _Left, _FwdIt2 _Right)
返回值:void
参数1:迭代器指针1
参数2:迭代器指针2
作用:将迭代器指针1的值与迭代器指针2的值进行对调。(两个参数可以是不同的容器中的迭代器指针)
main.cpp
//输出arr
void showarr(vector<int> &Arr)
{
vector<int>::iterator iteArr = Arr.begin();
for (iteArr ; iteArr != Arr.end(); iteArr++)
{
cout << *iteArr << "\t";
}
cout << endl;
}
void main()
{
//首先创建一个容器,需要包含vector头文件
vector<int> arr = {1,2,3,4};
//输出一下
showarr(arr);
//然后使用iter_swap(),将arr.begin()的值和arr.end()-1即最后一个值的位置对换。
iter_swap(arr.begin(),arr.end()-1);
//这时输出arr为:4,2,3,1
showarr(arr);
}
lexicographical_compare() :以字典排序方式比较
bool lexicographical_compare(_InIt1 _First1, _InIt1 _Last1,_InIt2 _First2, _InIt2 _Last2)
返回值:bool
参数1:容器1的迭代器指针(开头)
参数2:容器1的迭代器指针(结尾)
参数3:容器2的迭代器指针(开头)
参数4:容器3的迭代器指针(结尾)
作用:当容器2的值以字典排序方式比较大于容器1的值时,返回true
//首先创建两个容器
vector<int> arr2 = { 1,2,3,4 };
vector<int> arr3 = { 1,2,4,4 };
//使用
bool isOK = lexicographical_compare(arr2.begin(),arr2.end(),
arr3.begin(),arr3.end());
//当arr3大于arr2时返回true
if(isOK)
{
cout << "nice";
}
else
{
cout << "。。。。。";
}
//这个结果返回的是true,会输出nice
上方怎么比较有点模糊,还是多举一点例子吧。以至于讲的
vector<int> arr2 = { 1,2,3,4 };
vector<int> arr3 = { 1,2,3,4 };
//当两个相等时,返回false
vector<int> arr2 = { 2,2,3,4 };
vector<int> arr3 = { 1,2,3,4 };
//这个返回false
vector<int> arr2 = { 2,2,3,4 };
vector<int> arr3 = { 1,6,3,4 };
//这个返回false,看到了这里发现了什么没有
这个按字典排序比较,是按照index来进行比较的。开始时,用容器2的第1个值与容器1的第一个值进行比较,一直往下推,若容器1和容器2的值相同,继续进行比较;若在途中容器1中值大于容器2的值,直接返回false,退出比较;若在途中容器1中值小于容器2的值,直接返回true,退出比较。
使用该函数比较字符串也是一样的。字符长度和字符一样,继续循环;原理差不多的啦。对了有一点要注意的,中文和英文比较是比较不了的!,比较的语言要一致啊,亲。