stl set_symmetric_difference的时间复杂度

时间:2017-09-09 10:15:06

标签: c++ stl time-complexity

我正在阅读stl set_symmetric_difference

的时间复杂度

它说:

  

2 *(count1 + count2)-1中的线性值(其中countX是距离   在firstX和lastX之间):比较和分配元素。

我对语句“ countX是firstX和lastX 之间的距离”感到困惑。

请举例说明。

1 个答案:

答案 0 :(得分:1)

  

我对语句“countX是firstX和lastX之间的距离”感到困惑。

从您链接到的同一页面上的示例:

  

first1, last1

     

将迭代器输入到第一个排序序列的初始位置和最终位置。 >使用的范围是[first1,last1],其包含first1>之间的所有元素。和last1,包括first1指向的元素,但不包括指向的元素   by last1。

     

first2, last2

     

将迭代器输入到第二个排序序列的初始位置和最终位置。使用的范围是[first2,last2)。

因此,count是迭代器的排序元素之间的std::distance(即跳数),表示数据结构中的第一个和最后一个元素(示例中的数组)。首先(排序:5 10 15 20 25)将是5。

至于complexity of std::distance

  

线性

     

但是,如果InputIt另外满足RandomAccessIterator的要求,复杂性是不变的。