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

时间:2013-08-10 06:40:57

标签: c++ pointers vector iterator

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

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

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

  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 个答案:

答案 0 :(得分:5)

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