c++ - 在 C++ 中创建具有多次重复的相同元素的数组

标签 c++ arrays

有一个数组: A={4,5} ,现在我必须将此数组 X 次连接到一个空数组 B >.

例如:如果x=3
然后B={4,5,4,5,4,5}

这可以这样实现:

    vector<int>B;
    while(x--){
        for(int i=0;i<N;i++){
            B.push_back(A[i]);
        }
    }

N 是数组 A 的长度。
X=N时,这将需要O(N^2)。有更好的方法吗?

最佳答案

我认为你无法将数量级提高到 O(x*N) 以上。 但将初始 vector 大小设置为

std::vector<int> B(x*N);

在某些条件下可以通过减少 vector 重新生长来稍微提高性能。

关于c++ - 在 C++ 中创建具有多次重复的相同元素的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48250434/

相关文章:

c++ - OpenGL 对象在 PC 上以正常速度旋转,但在笔记本电脑上旋转速度极快

c++ - 我应该使用前向声明将类移动到文件末尾吗?

c++ - 从 C++ 中的指针数组向 vector 添加元素

python - 如何在不更改原始数组的情况下操作数组的副本?

python - 为什么 int numpy 数组的逆幂为 0,尽管 "from __future__ import division"?

c++ - 将类代码分离为头文件和 cpp 文件

c++ - 在 C++ 中使用静态常量成员初始化另一个静态常量

Javascript 每次都生成随机的唯一数字

c - 为什么这个 C 程序会导致段错误(核心转储)?

c++ - 在应用程序启动时设置控制台窗口特定大小