我需要一个运行时大小已知的容器,而无需调整大小。std::unique_ptr<T[]>会很有用,但没有封装的size成员。同时std::array只适用于编译类型的大小。因此,我需要这些类的某种组合,而没有/最小的开销。
是否有满足我需求的标准类,也许在即将发布的C ++ 20中有?
我们如何以恒定复杂度或 O(1) 交换 2 个数组?有没有办法做到这一点?我试过使用指针,但它给出了错误
加上这无济于事,因为它只是交换指针而不是数组
#include <algorithm>
int AA[100], *A=AA, BB[100], *B=BB;
swap(A, B);
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用向量赋值运算符,但它们具有线性复杂性,即 O(N) 不是常数,所以有什么方法可以在 O(1) 中交换两个数组?(通过使用指针或其他东西)
我尝试在网上搜索找到了 codeforces 的链接(http://codeforces.com/blog/entry/11971),但这没有帮助。