在C ++中,可以使用集合的迭代器来查找集合的两个连续元素之间的差异吗?

马可·罗伊斯

/ * [以下代码中的操作将永远运行,我应该进行哪些编辑才能获得连续的set元素之间所需的差异?] * /

包括

使用命名空间std;

int main(){

int temp;
set <int> sett ;
set <int>:: iterator itr;
int n=5 ;
itr= sett.begin();


for (int i=0;i<n ; i++){

    cin>> temp ;
    sett.insert(temp);


}

for( itr = sett.begin();itr!=sett.end();itr++){
    if(itr!=sett.end()){
        cout << (*itr++)-(*itr) << " difference"<< endl ;
    }

}


return 0;

}

埃雷里卡

在C ++中,可以使用集合的迭代器来查找集合的两个连续元素之间的差异吗?

是。

for( itr = sett.begin();itr!=sett.end();itr++){
//                                      ^^^^^
    if(itr!=sett.end()){    
        cout << (*itr++)-(*itr) << " difference"<< endl ;
//                ^^^^^

这里的问题是您将迭代器增加了两次,因此跳过了元素。此外,对于迭代器到最后一个元素的情况,您最终将通过迭代器间接经过最后一个元素(即,结束迭代器)。

实际上,有一个标准算法。它的名称通常被认为是令人困惑的,但是在这种用例中,它实际上是相当合适的。相约std::adjacent_difference

std::adjacent_difference(std::begin(sett), std::end(sett),
    std::ostream_iterator<int>(std::cout, " difference\n"));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 C# 中查找两个对象之间的差异

来自分类Dev

在C ++中替换两个迭代器之间的范围

来自分类Dev

如何使迭代器指向与C ++集合中的另一个元素相同的元素?

来自分类Dev

查找两个树结构之间的差异C#

来自分类Dev

C++ - 前两个元素之间的差异

来自分类Dev

C ++中对集合元素的迭代无法编译

来自分类Dev

是否可以在单个线程进程中的两个连续的C语句之间修改堆上的内存

来自分类Dev

在c ++ 11中,可以使用std :: atomic在两个线程之间传输非原子数据

来自分类Dev

在c ++ 11中,可以使用std :: atomic在两个线程之间传输非原子数据

来自分类Dev

C ++中集合中的迭代器

来自分类Dev

C中两个日期之间的差异

来自分类Dev

C中两个日期之间的秒数差异

来自分类Dev

我可以使用LINQ比较两个集合之间缺少,添加或更新的内容吗

来自分类Dev

在C#中产生两个列表项的集合差异

来自分类Dev

在C#中的两个日期之间进行迭代

来自分类Dev

比较 C 中两个集合位置(整数值)之间两个字符串的两个子字符串

来自分类Dev

WPF C# 如何根据活动按钮在两个集合之间进行选择以在 GridView 中使用

来自分类Dev

c#中的“ operator true”是否有两个可以使用的地方?

来自分类Dev

C ++中两个向量之间的元素交换

来自分类Dev

我可以在C中两个子进程之间使用相同的管道吗?

来自分类Dev

服务器可以在c中打开两个TCP套接字吗?

来自分类Dev

如何在 C++ 中创建一个算法来在不重复的情况下查找集合的变体(即 n 个元素,选择 k)?

来自分类Dev

使用 MongDB C# 驱动程序连接两个集合的查询中的 NOT IN 过滤器

来自分类Dev

用C#或JavaScript连接两个集合

来自分类Dev

无法同时遍历两个不同的集合C#

来自分类Dev

C#:使用Linq和Lambda获取2个集合之间的不匹配元素

来自分类Dev

C#获取两个DateTime日期之间的差异

来自分类Dev

在C#中发现两个对象之间的差异

来自分类Dev

两个大号C#之间的差异

Related 相关文章

  1. 1

    在 C# 中查找两个对象之间的差异

  2. 2

    在C ++中替换两个迭代器之间的范围

  3. 3

    如何使迭代器指向与C ++集合中的另一个元素相同的元素?

  4. 4

    查找两个树结构之间的差异C#

  5. 5

    C++ - 前两个元素之间的差异

  6. 6

    C ++中对集合元素的迭代无法编译

  7. 7

    是否可以在单个线程进程中的两个连续的C语句之间修改堆上的内存

  8. 8

    在c ++ 11中,可以使用std :: atomic在两个线程之间传输非原子数据

  9. 9

    在c ++ 11中,可以使用std :: atomic在两个线程之间传输非原子数据

  10. 10

    C ++中集合中的迭代器

  11. 11

    C中两个日期之间的差异

  12. 12

    C中两个日期之间的秒数差异

  13. 13

    我可以使用LINQ比较两个集合之间缺少,添加或更新的内容吗

  14. 14

    在C#中产生两个列表项的集合差异

  15. 15

    在C#中的两个日期之间进行迭代

  16. 16

    比较 C 中两个集合位置(整数值)之间两个字符串的两个子字符串

  17. 17

    WPF C# 如何根据活动按钮在两个集合之间进行选择以在 GridView 中使用

  18. 18

    c#中的“ operator true”是否有两个可以使用的地方?

  19. 19

    C ++中两个向量之间的元素交换

  20. 20

    我可以在C中两个子进程之间使用相同的管道吗?

  21. 21

    服务器可以在c中打开两个TCP套接字吗?

  22. 22

    如何在 C++ 中创建一个算法来在不重复的情况下查找集合的变体(即 n 个元素,选择 k)?

  23. 23

    使用 MongDB C# 驱动程序连接两个集合的查询中的 NOT IN 过滤器

  24. 24

    用C#或JavaScript连接两个集合

  25. 25

    无法同时遍历两个不同的集合C#

  26. 26

    C#:使用Linq和Lambda获取2个集合之间的不匹配元素

  27. 27

    C#获取两个DateTime日期之间的差异

  28. 28

    在C#中发现两个对象之间的差异

  29. 29

    两个大号C#之间的差异

热门标签

归档