c++,itA,it帮到底如何理解

我的理解是//itA,itB先指定了内存位置,内容var变了,锚抛好了,船变了,锚的地址是知道的,内容不清楚,就是这个itA和itB到底是什么?

string var ("abcdefghijklmn");
    const string dest ("1234");
    string dest2 ("567891234");
    var = "1234";
    itA = var.begin ();
    itB = var.end();
    itC = dest2.begin () +1;
    itD = dest2.end ();
    var = "abodefghijklmn";
    var.replace (itA, itB, itC, itD);

    cout << "5: " << var << endl;

输出

5: 67891234efghijklmn

是地址

迭代器。

迭代器不是指针,是类模板,表现的像指针。他只是模拟了指针的一些功能,通过重载了指针的一些操作符,->,*,++ --等封装了指针,是一个“可遍历STL( Standard Template Library)容器内全部或部分元素”的对象, 本质是封装了原生指针,是指针概念的一种提升(lift),提供了比指针更高级的行为,相当于一种智能指针,他可以根据不同类型的数据结构来实现不同的++,--等操作;
迭代器返回的是对象引用而不是对象的值,所以cout只能输出迭代器使用*取值后的值而不能直接输出其自身。
 

C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html
C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html