因为需要准备蓝桥杯,所以复习一下 C++,在此作一下分享 . . .
文章没有演示结果,大家可以自行演示 . . .
查找
vector<int> v{ 1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 9, 0 };
// 查找相邻元素的第一个元素
adjacent_find(v.begin(), v.end());
// 折半查找
binary_search(v.begin(), v.end(), 7);
// 返回指定元素的个数
count(v.begin(), v.end(), 6);
// 返回指定条件的个数、LAMBDA 初使用
count_if(v.begin(), v.end(), [](int x) {return x >= 3; });
// 返回指定值的最小与最大索引
equal_range(v.begin(), v.end(), 2);
// 查找指定元素 没有返回 end
find(v.begin(), v.end(), 9);
// 返回一系列有条件的元素迭代器
find_if(v.begin(), v.end(), [](int x) {return x >= 3; });
.
排序
vector <int> b{ 3, 3, 3, 4, 4, 5, 6, 9 };
vector <int> s(v.size() + b.size());
// 默认升序 // [](int x, int y) {return x >= y; }
sort(v.begin(), v.end());
// 合并有序
merge(v.begin(), v.end(), b.begin(), b.end(), s.begin());
// 逆序
reverse(v.begin(), v.end());
// 随机排序
random_shuffle(v.begin(), v.end());
.
拷贝和替换
vector<int> c(v.size());
// 拷贝
copy(v.begin(), v.end(), c.begin());
// 指定范围换值
replace(c.begin(), c.end(), 2, 666);
// 交换两个容器中的内容
swap(c, b);
// 输入值赋给标志范围内的所有元素
fill(v.begin(), v.end(), 5);
.
集合算法
vector<int> uni(v.size() + b.size());
sort(v.begin(), v.end());
sort(b.begin(), b.end());
// 并集
//set_union(v.begin(), v.end(), b.begin(), b.end(), uni.begin());
// 交集
//set_intersection(v.begin(), v.end(), b.begin(), b.end(), uni.begin());
// 差集
//set_difference(v.begin(), v.end(), b.begin(), b.end(), uni.begin());
.
遍历算法
// 遍历每一个元素 不可修改
for_each(uni.begin(), uni.end(), [](int x) {cout << x << endl; });
vector<char> str{ 'a','s','d','g','v'};
// 遍历每一个元素,进行处理其中的数据
transform(str.begin(), str.end(), str.begin(), ::toupper);