C++通过迭代器更新矢量元素

5 c++ pointers iterator vector

我正在实现就地合并排序,所以我需要更新向量容器元素而不创建新容器.我正在迭代容器,并没有矢量容器作为参数.我只传递目标容器的迭代器.

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

以下是我的代码的一部分.

  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++;
        }
  }
Run Code Online (Sandbox Code Playgroud)

Ulr*_*rdt 7

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