如何从双向迭代器中减去1

 吸毒草的秘密 发布于 2023-02-10 22:49

我有迭代器我不想改变,但我想为该迭代器-1的值分配另一个迭代器,所以
it2 = --it1; 是不可能的.
问题:
it2 = it1-1; 不起作用.

错误:'更大 - 1'中的'operator-'不匹配c ++/4.1.1/bits/stl_bvector.h:182:注意:候选者是:ptrdiff_t std :: operator-(const std :: _ Bit_iterator_base&,const std: :_Bit_iterator_base&)

我能做到的

it2 = --it1;
it1++;

但那太可怕了.

1 个回答
  • 在C++ 11中,使用std::prev标题<iterator>:

    it2 = std::prev(it1);
    

    在此之前,你不得不自己制作副本并将副本推进-1:

    it2 = it1;
    std::advance(it2, -1);
    

    要么:

    it2 = it1;
    it2--;
    

    2023-02-10 23:05 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有