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

标签 c++ time-complexity

我的一个 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>以这辆卡车为代表,拖车上附有一个黑色容器

enter image description here

(来源:bigcommerce.com)

现在,它的black-container 中有数百万篇论文(由black-containerstd::vector<T> 对元素的内存)。现在,您想将文件复印到另一个类似的车辆中,vec2 .你能做到多好? photo-copy 的复杂度是多少?这将是O(论文数量)


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

关于c++ - 在 C++ 中复制变量的复杂性是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41520379/

相关文章:

c++ - 如何填充接触图像边界的轮廓?

big-o - 时间复杂度——大O

algorithm - 生成括号的递归实现的时间复杂度分析

algorithm - 带 if-else block 的 for 循环的时间复杂度

c++ - QThread:使用 GUI 反馈阻塞进行并行执行?

C++ 在父类(super class)构造函数中运行依赖于子类重写的大量变量的代码的正确方法是什么?

c++ - 包含 boost::numeric::ublas::matrix<double> 的类的运算符重载

c++ - GCC 4.8.x 中的 Bug 处理灵活数组成员?

algorithm - 在小于 O(n^2) 复杂度的情况下计算来自两个数组的互质对

redis - redis中zadd的时间复杂度