c/c++ 标准库 迭代器(iterator)
标签:target for循环 lse 例子 添加 tor 不可 size font
c/c++ 标准库 迭代器
begin和end运算符返回的具体类型由对象是否是常量决定,如果对象是常量,begin和end返回const_iterator;如果对象不是常量,返回iteraotor
1,但凡是使用了迭代器的循环体,都不要向迭代器所属的容器添加元素。
2,不能在范围for循环中向vector对象添加元素
标准库 迭代器(iterator)的小例子
test1~test8
#include
#include
#include
using namespace std;
int main(){
//test1
/*
string s("abc bdc");
auto it = s.begin();
while(it != s.end()){
*it = toupper(*it);
++it;
}
cout :: iterator it;
vector:: const_iterator it2;
vector v(5,1);
it = v.begin();
it2 = v.begin();
vector const cv(5,2);
//it = cv.begin();//it是可改变的vector::iterator,所以编译错误
for(auto s : v){
cout v(4,2);
auto vit1 = v.cbegin();
//*vit1 = 5;//不可以通过const类型的iterator改变原来的对象
*/
//test6 string迭代器运算
/*
string s("abcd");
string s1("abc");
vector v(5,3);
auto it1 = s.begin();
auto it2 = s.begin();
if(it1 == it2){
cout it2){
cout " s(4,"abcd");
vector s1(5,"abc");
auto it1 = s.begin();
auto it2 = s.begin();
if(it1 == it2){
cout it2){
cout " ::difference_type juli = it1 - it2;
cout v{"a","b","c","d","e"};
string target("b");
vector::size_type idx = 0;
auto beg = v.begin();
auto mid = v.begin() + v.size() / 2;
auto end = v.end();
while(mid != end && *mid != target){
if(target
c/c++ 标准库 迭代器(iterator)
标签:target for循环 lse 例子 添加 tor 不可 size font
原文地址:https://www.cnblogs.com/xiaoshiwang/p/9623559.html
评论