在C++中复制变量的复杂性是什么?

Sin*_*Cos 1 c++ time-complexity

我的一位朋友说,位掩码比位集更好,因为复制位集需要O(N)时间,而复制位掩码只需要O(1)时间,这使得动态编程等应用程序的速度更快.所以我想知道所有其他数据类型是否相同?

例如,这段代码的复杂性是什么?

vector <int> vec1 = {1,2,3,4,5,6,7,8,9,10};
vector <int> vec2 = vec1;
Run Code Online (Sandbox Code Playgroud)

如果是O(N),为什么会这样呢?不应该是O(1)就像做类似的事情

int x = 530210;
int y = x;
Run Code Online (Sandbox Code Playgroud)

将会?

Whi*_*TiM 6

你有这辆卡车vec1std::vector<T>代表,它的拖车上装有黑色容器.

在此输入图像描述

(来源:bigcommerce.com)

现在,黑色容器中有数百万篇论文(黑色容器,std::vector<T>元素的记忆).现在,您想要将纸张复印到另一辆类似的车辆中vec2.你怎么做得最好?什么是照片复制品?它将是O(论文数量)


现在,假设您要移动内容......所有std::vector需要做的就是将其黑色容器从卡车上拆下,并将其连接到另一辆卡车上...这使得容器的移动复杂度为O(1)