本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素。
输入格式: 输入在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。
输出格式: 在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格。
输入样例: 4 10 8 1 2
输出样例: 2 1 8 10
本题的实质是考察数组或容器的倒序运算。 解法1:STL容器中vector容器操作。 定义int型容器,逐个存入数字后,从容器顶依次输出即为倒叙。优点是时间复杂度较小:O(n),缺点是代码相对较长。
解法2:使用algorithm头文件中的reverse()函数翻转。 存入数组后,直接调用翻转函数即可。优点是代码简洁,只有10行;缺点是时间复杂度较大:O(nlogn)。
传送门1——>懒癌的福音——algorithm头文件函数全集 强烈推荐读者把两种解法都尝试一下,都是很常用的方法。
vectorv1; vector保存类型为T的对象。默认构造函数v1为空。 vectorv2(v1); v2是v1的一个副本。 vectorv3(n,i); v3包含n个值为i的元素。 vectorv4(a,a+4); 利用a[MAX]数组赋值 vectorv5(v4.begin(),v4.end()) ; //利用另一个容器和函数赋值
1.push_back() 在数组的最后添加一个数据 2.pop_back() 去掉数组的最后一个数据 4.begin() 得到数组头的指针 5.end() 得到数组的最后一个单元+1的指针 6.front() 得到数组头的引用 7.back() 得到数组的最后一个单元的引用 10.size() 当前使用数据的大小 13.erase() 删除指针指向的数据项 14.clear() 清空当前的vector 17.empty() 判断vector是否为空 18.swap() 与另一个vector交换数据 19.insert() 插入