使用迭代器增加
Incrementing using iterator
我几天前才开始使用迭代器。虽然我确实得到了基本想法,但我需要帮助清理一些东西。
我正在从一本书中学习C ,在有关迭代器的章节结尾处,有一些小分配是这样的:
"假设"分数"是一个载有int类型元素的向量,以下代码代码段(意味着增加每个元素)是什么?
?vector<int>::iterator iter;
for(iter =scores.begin(); iter !=scores.end(); iter++)
{
iter++;
}
现在,即使没有循环中的代码,迭代器迭代也已经被for循环增强了。因此,我认为我应该这样做确实会增加迭代器引用的向量的值。
for(iter =scores.begin(); iter !=scores.end(); iter++)
{
*iter++;
}
但这也返回了一个错误。因此,这让我想到...甚至可以使用迭代器增加值吗?还是迭代器只是一个曾经用来通过容器中的对象迭代并引用它们的对象?无法实际修改其价值?
将其更改为:
for(iter =scores.begin(); iter !=scores.end(); iter++)
{
(*iter)++;
}
在C 运算符中具有不同的先例,请参见此处的表。
延期之前进行后缀增量。
相关文章:
- 使用std::multimap迭代器创建std::list
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- C++中带有List类的迭代器Segfault
- 如何在c++迭代器类型中包装std::chrono
- 集合上的输出迭代器:assign和increment迭代器
- Boost Spirit,获取迭代器内部语义动作
- 对于set上的循环-获取next元素迭代器
- 为什么output_editor Concept不需要output_e迭代器标记
- c++17文件系统::recursive_directory迭代器()在mac上没有给出这样的目录,但在windows上
- f.getline() 迭代器不增加
- 使用迭代器增加
- 减少 begin() 迭代器,然后再次增加它
- 增加迭代器标准映射
- 为什么 QVector 的迭代器使用前缀增加,而后缀在内部减少?
- C++映射/设置迭代器在使用多映射时出现不可增加的错误
- 为什么我们在这里增加 ostream 迭代器
- 为什么迭代器在与map.begin()一起使用时预先增加了
- 如何使用擦除-删除习惯用法并在循环中增加迭代器
- 为什么std::copy_n没有将Input迭代器增加n次
- 在将其用作参数时,在内部增加迭代器是否安全