我的一个 friend 说位掩码比位集好,因为它需要 O(N) 的时间来复制一个位集,而只需要 O(1) 的时间来复制一个位掩码,这使得它对于动态编程等应用程序来说要快得多。所以我想知道所有其他数据类型是否都一样?
例如,这段代码的复杂度是多少?
vector <int> vec1 = {1,2,3,4,5,6,7,8,9,10};
vector <int> vec2 = vec1;
如果是O(N),为什么会这样?难道不应该是 O(1) 就像做这样的事情吗
int x = 530210;
int y = x;
会是吗?
最佳答案
你有 vec1
这是 std::vector<T>
以这辆卡车为代表,拖车上附有一个黑色容器。
(来源:bigcommerce.com)
现在,它的black-container 中有数百万篇论文(由black-container,std::vector<T>
对元素的内存)。现在,您想将文件复印到另一个类似的车辆中,vec2
.你能做到多好? photo-copy 的复杂度是多少?这将是O(论文数量)
现在,假设您要移动 内容...全部std::vector
需要做的是将它的黑色容器从卡车上拆下,然后将其连接到另一辆卡车的......这使得容器的移动复杂性为O (1)
关于c++ - 在 C++ 中复制变量的复杂性是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41520379/