【发布时间】:2016-02-16 10:22:27
【问题描述】:
当我使用begin() 和end() 迭代器在doubles 的vector 上调用sort 时,sort 函数如何修改原始vector 以包含排序值?
虽然迭代器只是代表一个值,但它们如何导致原始的 vector 被修改?
vector<double> nums = {10.33, 20.44, 60.77};
sort(nums.begin(), nums.end(); // how does the original nums get changed?
【问题讨论】:
-
它不代表一个值。它表示向量中的一个位置。
-
它可以通过取消引用迭代器来改变(交换)元素的值。
-
@NickyC 这是有道理的。但是它是如何修改向量的呢?
-
迭代器是指向某个范围内的某个对象并具有遍历元素的能力的任何对象。最明显的迭代器是指针。如果你知道指针是如何工作的,那么你就有答案了。
-
@songyuanyao 是的,我没想到。谢谢!
标签: c++ sorting vector iterator