使用STL实现迭代器
#include<iostream>
#include<vector>
using namespace std;
void print(vector<int> v) {
//从向量开头顺次访问
vector<int>::iterator it;
for (it = v.begin(); it != v.end(); it++) {
cout << *it;
}
cout << endl;
}
int main() {
int N = 4;
vector<int> v;
for (int i = 0; i < N; i++) {
int x;
cin >> x;
v.push_back(x);
}
print(v);
vector<int>::iterator it = v.begin();
*it = 3;//将3赋值给开头元素v[0]
it++;//前移一个位置
(*it)++;//v[1]的元素加1
print(v);
system("pause");
return 0;
}
输入
2 0 1 4
输出
2014
3114
二分搜索
二分搜索方面,STL提供了binary_search、lower_bound、upper_bound。
lower_bound
是一种应用于有序数据范围内的算法,它可以返回一个迭代器,这个迭代器指向第一个不小于指定值value的元素。通过它,我们既可以找出第一个能够恰当插入value的位置,又能维持指定范围内的元素顺序(有序状态)。
相对的,upper_bound
返回迭代器第一个大于指定值value的元素。
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
int A[14] = {
</