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++;
        }
  }
4

1 回答 1

9

*it为您提供对相应元素的引用,并且可以分配该引用。迭代器的行为类似于指针,请记住这一点。

于 2013-08-10T06:46:32.087 回答