容器末端和指向内部项的迭代器之间的区别.C++
Difference between end of a container and iterator pointing to an item inside. C++
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);
相关文章:
- 计算两个迭代器之间的距离时"Vector Iterators Incompatible"
- 对于C++随机访问迭代器(矢量迭代器),迭代器之间的差异是如何计算的?
- 如果我的容器位于两个现有值之间,那么伪造迭代器类别是否合理
- 迭代器和标量对象之间的未定义行为有什么区别吗?
- 如果我在下面的代码中使用 list 而不是 vector,为什么在我尝试在迭代器之间执行减法的行中编译失败?
- 正则表达式使用提升令牌迭代器在单引号和括号之间提取值
- const矢量和const迭代器之间的差异
- C STL,我想知道地图中的双向迭代器和操作员[]之间有什么不同
- 遍历std ::映射,效果少于迭代器之间的比较
- 如何获取两个迭代器之间的元素总数
- 一对迭代器之间的子序列的gtest/gmock匹配器
- 容器末端和指向内部项的迭代器之间的区别.C++
- MapValue 和迭代器 C++ 之间的比较
- C++:对迭代器之间计算距离的类型感到困惑
- 在两个迭代器之间获取“std::string”的子字符串
- 自定义迭代器和自定义常量迭代器之间的转换
- STL容器迭代器和C指针迭代器之间的区别是什么
- 如果没有for循环,我如何直接找到映射中指向两个不同键的任何两个迭代器之间的元素数量
- 两个迭代器之间有多少个元素
- 有效地计数两个std::multimap迭代器之间的条目数