C++使用迭代器更新向量元素

5

我正在实现原地归并排序算法,因此需要更新向量容器元素而不创建新的容器。我正在迭代容器,并且没有将向量容器作为参数传递。我只传递了目标容器的迭代器。

我的问题是:“如何仅通过向量容器的迭代器更新或替换向量容器元素?”

以下是我的部分代码。

  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++;
        }
  }
1个回答

9

*it 给你一个指向对应元素的引用,并且该引用可以被赋值。迭代器类似于指针,请记住这一点。


正确的做法是使用迭代器进行引用,那么如何通过引用访问原始值呢?解引用只能用于检索值。 - user2172254
哦,对了。我正在做我想做的事情。我忘记递归地分割容器了。谢谢! - user2172254

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接