将预定但非初始化的向量设置为另一个别名
Set a predeclared but uninitialized vector as an alias of another
在以下代码中,我希望向量 v
设置为vector in
而不会复制其内容,但我无法使用诸如 vector<int> &v = in
的参考,因为v已经声明了。我应该做些更改以防止复制?
class pt
{
private:
vector<int> v;
int size;
public:
void construct(int n)
{
for (int i = n - 1; i >= 0; --i)
{
v[i] = v[i - 1] + v[i - 2];
}
}
pt(vector<int>& in, bool no_Copy = false)
{
if (no_Copy)
{
&v = in; //I want to fix this
}
else {}
construct(in.size());
}
//other functions which use `v`
};
之类的东西
vector<int> v;
不能"切换"从不成为别名。
您可以将其始终成为一个别名,在一种情况下,它是指传递的in
向量,而在另一种情况下,它是in
vector的副本。
例如:
class pt
{
private:
vector<int>& v;
vector<int> v_copy;
...
pt(vector<int>& in, bool no_Copy = false)
: v(no_Copy ? in : v_copy)
{
if(!no_Copy) v_copy = in;
}
,您也可以从@carl在评论中提出的那样从in
移动。这很快,但会破坏in
矢量。
相关文章:
- 将特征矩阵的向量设置为0
- 将向量设置为等于 {};
- 设置负元素特征稀疏向量C++
- 如何设置一个 std::vector 与另一个,其中两个是不同类的向量?
- 空向量占用的空间是否与指向当前设置为 nullptr 的类型的指针一样多
- 如何在 c++ 中从字符串向量设置类对象
- 设置 A=B 会以某种方式弄乱 B 吗?(所有向量)C++
- 当将向量设置为一个值时,整个向量会被覆盖
- 如何使用向量设置 OpenCV3 calcHist() 的参数
- 如何设置 "discrete_distribution" c++ 的向量
- 将向量<double>设置为wxComboBox的选择值
- 当对象包含其他对象的向量时,无法设置值
- 设置::使用数字中的引号进行向量初始化
- 如何在C++中创建一个网格,这将允许我将每个索引设置为一个向量,以便以后操作该向量,然后绘制它
- 如何在设置元素中重用向量?
- 有效的将向量传递给课堂中的设置器
- 将预定但非初始化的向量设置为另一个别名
- 如何将2D向量中的对象设置为空指针[C ]
- 在c++中设置向量
- 在运行时动态设置向量类