可能是重复问题:
为什么要使用迭代器而不是数组索引?
string::iterator it;
for (it = str.begin(); it < str.end(); it++)
cout << *it;
cout << endl;
为什么不这样做:
for (int i = 0; i < str.size(); i++)
cout << str[i];
cout << endl;
看起来,string::iterator也没有提供范围检查。为什么我们要使用 string::iterator
而不是索引呢?
谢谢。
end()
进行比较时,更倾向于使用operator!=()
而不是operator<()
。 - jasonMyIterator operator++(int) { MyIterator temp(*this); ++*this; return temp; }
。无论是否分配,这都会创建一个不必要的临时变量。我默认我们已经重载了前置递增。 - jason