【发布时间】:2022-01-25 10:41:53
【问题描述】:
int main()
{
int num[5];
int num2[5];
int n;
int j = 0;
cout << "provide size of array" << endl;
cin >> n;
for(int i =0; i< n; i++){
cin >> num[i];
}
cout << "the size of n is " << n << endl;
while(n != 0){
num2[j] = num[n-1];
n--;
j++;
}
for(int k = 0; k< 5; k++){
cout << num2[k] << endl;
}
}
我需要创建用于反转数组的程序,但没有交换,我已经这样做了,但这是一种最佳方式,还是使用 swap() 是最佳的?与交换一样,我不需要创建另一个数组。
【问题讨论】:
-
你的意思是你不能使用
std::swap()或者你根本不能做任何交换? -
不,不使用swap(),但仍然是最好的方法,使用swap()或这个,你可以看到我可以在没有swap()的情况下反转这个数组。
-
不存在通用最优。最优总是相对于上下文或参考框架。通常最理想的做法是根本不反转容器,而只是反向迭代它。
-
这能回答你的问题吗? C++ Reverse Array
-
谢谢@ÖöTiib 我明白了。
标签: c++ arrays optimization reverse swap