我正在阅读stl set_symmetric_difference
的时间复杂度它说:
2 *(count1 + count2)-1中的线性值(其中countX是距离 在firstX和lastX之间):比较和分配元素。
我对语句“ countX是firstX和lastX 之间的距离”感到困惑。
请举例说明。
答案 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的要求,复杂性是不变的。