当前位置: 首页 > 知识库问答 >
问题:

在2个集合中有n个元素,我必须遍历它们,这样在每次迭代中,我得到当前元素,也得到下一个元素

叶文博
2023-03-14

下面是我写的代码,它显示错误(我们不能使用end()-1和itr+1操作)。我的目的是一对一对地看完布景。我想要得到{1 2}{2 3}。

    for(itr=X.begin();itr!=X.end()-1;itr++) 
    {
        int l1,l2;
        l1 = *(itr+1) - *itr;
        for(itr1=Y.begin();itr1!=Y.end()+1;itr1++)
        {

            l2 = *(itr1+1) - *itr1;
            
            int l = min(l1,l2);
            int num = (l*l)/(a*a);
            
            count += num;
        }
    }   

共有1个答案

席嘉祯
2023-03-14

集迭代器不支持+-。这似乎是做你想做的最简单的方法

std::set<int> X = ...;
auto i = X.begin();
if (i != X.end())
{
    auto j = ++i;
    while (j != X.end())
    {
        int l1 = *j - *i;
        ...
        // similar code for Y loop
        ...
        ++i;
        ++j;
    }
}

它与您的代码基本相同,但在一个循环中使用了两个相邻的迭代器ij,以避免不得不使用+-

 类似资料:
  • 我正在尝试学习java流。我能够进行简单的迭代/过滤/映射/收集等。 当我尝试收集每 3 个元素并打印时,如本例所示,[收集每 3 个元素并打印等等......] 输出: 我没有得到任何线索,如何使用流做到这一点。我应该实现自己的收集器来实现这一点吗?

  • 返回数组中的每个第 n 个元素。 使用 Array.filter() 创建一个包含给定数组的每个第 n 个元素的新数组。 const everyNth = (arr, nth) => arr.filter((e, i) => i % nth === nth - 1); everyNth([1, 2, 3, 4, 5, 6], 2); // [ 2, 4, 6 ]

  • Iterator(迭代器)是一个接口,它的作用就是遍历容器的所有元素,也是 Java 集合框架的成员,但它与 Collection 和 Map 系列的集合不一样,Collection 和 Map 系列集合主要用于盛装其他对象,而 Iterator 则主要用于遍历(即迭代访问)Collection 集合中的元素。 Iterator 接口隐藏了各种 Collection 实现类的底层细节,向应用程序提

  • 我有一个名为计算的方法,它需要太长时间才能完成。所以我决定将我的信息列表对象部分发送到这个方法。我如何遍历每n个元素?

  • 我有困难的逻辑,我有6个数字在我的arraylist和我想打印每2个元素,然后去下一个元素2。喜欢打印1,2然后3,4然后5,6。

  • 问题内容: 说我有一个清单,我想遍历第一个清单。用Python编写此代码的最佳方法是什么? 问题答案: 通常的方法是切片:

  • 这是一个算法问题。如果我错过了Python中任何有帮助的现有函数,请大喊一声。 给定一组元素的,我们可以在Python中使用函数来找到所有唯一的k元素子集。让我们调用包含所有这些子集的集合。请注意,每个这样的子集都有不同的元素。 问题是两步走。首先,给定这些k-不同元素子集,我想组合(其中的一些),这样(组合只是一些子集的超集): > 构图中任意两个子集之间的交集为空 构图中所有子集的并集给出的正

  • 我正在使用Javascript(ES6)/FacebookReact,并尝试获得大小不同的数组的前3个元素。我想做与Linq take(n)等价的操作。 在我的Jsx文件中,我有以下内容: 然后我尝试了前3个项目 这不起作用,因为地图没有一个设置的函数。 你能帮忙吗?