C++之迭代器
#include <iostream>
#include <vector>
#include <string>
using namespace std;
/*
迭代器:可迭代的(容器或者string对象)的访问机制,类似指针
string s;
auto b = s.begin(), e = s.end(); // b是s的首字符,e是s的尾元素的下一位置。
// 若s为空,则b == s.
iter: 迭代器本身
*iter: 迭代器指向的元素
运算:
*iter // 迭代器所指向的元素的引用
iter->mem , (*iter).men ,指向元素有多个成员,引用其中一个
++iter, --iter, 下一个/上一个元素
iter1 == iter2, iter1 != iter2 // 相等和不等
迭代器类型:
iterator类型: 能够读写(read and write)
vector<int>::iterator it;
string::iterator it2;
const_iterator类型: 只能读不能写(read only)
vector<int>::const_iterator it3;
string::const_iterator it4;
*/
void testIterator() {
cout << "iterator:" << endl;
string s("some string");
if (s.begin() != s.end()) {
auto iter = s.begin();
*iter = toupper(*iter);
}
cout << "s: " << s << endl;
for (auto iter = s.begin(); iter != s.end() && !isspace(*iter); ++iter) {
*iter = toupper(*iter);
}
cout << "s: " << s << endl;
}