容器末端和指向内部项的迭代器之间的区别.C++

Difference between end of a container and iterator pointing to an item inside. C++

本文关键字:迭代器 之间 C++ 区别 内部      更新时间:2023-10-16
list<int> l;
list<int>::iterator start;
list<int>::iterator end;
list<int>::iterator mid;
for (int i = 0; i < 100; ++i)
    l.push_back(i);
start= l.begin();
end= l.end();
mid = start+ (end- start) / 2;
cout << *mid << endl;

好的,我现在有一个具体的例子。 结束 - 开始不编译。

list迭代器Bidirectional iterator, it's not随机访问迭代器. You can't call运算符-'。

您可以尝试使用 std::advance 将迭代器移动到容器的中间

std::advance(ble.begin(), ble.size()/2);