如何将指针向量中的指针移动到该向量中的另一个索引?

问题描述

编辑:

谢谢你的帮助。我也想过使用 nullptr 应该可以工作:

v.at(1).ptr = v.at(0).ptr;

关注

v.at(0).ptr = nullptr;


我正在用 C++ 开发一个项目,我有一个我创建的类的指针向量

向量大小为 64,包含类型为 L 的指针

假设向量被称为 v

假设我在向量 (v.at(0)) 的第一个索引中有指针 1

我想将指针 1 移动到向量的第二个索引 (v.at(1))

这是我当前的代码

v.at(1) = v.at(0);

一个问题:这是设置第二个索引以保存当前存储在我的第一个索引中的指针的正确方法吗?

第二个问题:如何阻止我的第一个索引持有我的指针?

先谢谢你! :D

解决方法

这适用于交换算法。即

// Swaps the entries at indices A and B in vector<L*> v
void swap(int idxA,int idxB)
{
    L* temp = v.at(idxA);
    v.at(idxA) = v.at(idxB);
    v.at(idxB) = temp;
}
,
#include <algorithm>

然后使用std::swap

std::swap(v.at(i_a),v.at(i_b));