1 条题解
-
0oistream (oistream) LV 8 MOD @ 2020-08-10 23:11:56
为了方便查看,这里放出了完整的代码,用到了一些的 C++ 技巧。
#include <iostream> #include <cstdio> #include "vector.h" using namespace std; using namespace dsa; typedef long long Num; typedef unsigned long long Unum; typedef long double Lfloat; #define Rint register int #define Os ostream template<typename T>/*T: integer type*/ void read(T& num) { char ch;int f;num=0;while(1){ch=getchar();if(ch=='-' || (ch>='0'&&ch<='9')) break;} (ch=='-')?(f=-1):(f=1,num+=ch-'0');while(1){ch=getchar();if(!(ch=='-' || (ch>='0'&&ch<='9'))) break; num*=10;num+=ch-'0';} num*=f; } namespace dsa { void printLots (Os& os,Vector<int> l,Vector<int> p)//Os& os 是一个输出流的引用 { for(auto x:p)//范围 for 循环,相当于 //for(Vector<int>::iterator it=p.begin();it!=p.end();it++){x=*it;...} //auto 是类型推导,使用 auto 可以避免写一大长串 Vector<int>::iterator { os<<l[x-1]<<" ";//这里用法和平时用 cout 是一样的 } } } int main() { Vector<int> l,p; p.push_back(1);p.push_back(3);p.push_back(4);p.push_back(6); for(int i=1;i<=6;i++) { l.push_back(i); } printLots(cout,l,p); return 0; }
注意其中的
vector.h
是按照此书之前的讲解编写的封装的数组,并定义在了命名空间dsa
下。你也可以直接把Vector<int>
换成 STL 的vector<int>
,具体方法不再多说。
- 1
信息
- ID
- 1113
- 难度
- 2
- 分类
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 被复制
- 1
- 上传者