有一个数组: 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/