我正在实现就地合并排序,因此我需要更新向量容器元素而不创建新容器。我正在迭代容器,并没有矢量容器作为参数。我只传递了目标容器的迭代器。
我的问题是“如何仅通过该矢量容器的迭代器更新或替换矢量容器元素?”
以下是我的代码的一部分。
template<typename T>
void it_practice(T begin, T end) {
for(T it = begin; it != end; ++it)
{
if (R_half[j] >= L_half[i])
{
*it = L_half[i];
i++;
}
else
{
*it = R_half[j];
j++;
}
}
答案 0 :(得分:5)
*it
为您提供对相应元素的引用,并且可以将该引用分配给。迭代器的行为类似于指针,记住这一点。