gpt4 book ai didi

c++ - std::sort 如何修改支持类型?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:51:46 28 4
gpt4 key购买 nike

当我使用 begin()doublevector 上调用 sort 时end() 迭代器 sort 函数如何修改原始 vector 以包含排序后的值?

虽然迭代器只是表示一个值,但它们怎么会导致原始 vector 被修改?

vector<double> nums = {10.33, 20.44, 60.77};
sort(nums.begin(), nums.end(); // how does the original nums get changed?

最佳答案

迭代器不代表值,它代表容器、流或流缓冲区中的某个位置。本质上,它们是指针的概括。一些迭代器允许您使用间接 (*it) 修改它们迭代的内容。

在最简单的情况下,它可能只是一个指针。考虑这段代码:

vector<double> nums = {10.33, 20.44, 60.77};
double* it = &nums[0]; //get the address of the first element
++it; //increment the pointer
*it = 42; //assign 42 to nums[1]

迭代器提供了很多相同的功能(取决于迭代器的类型)。

vector<double> nums = {10.33, 20.44, 60.77};
vector<double>::iterator it = nums.begin();//get an iterator to the first element
++it; //increment the iterator
*it = 42; //assign 42 to nums[1]

关于c++ - std::sort 如何修改支持类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35429845/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com