【C++测试】MyCopy函数编写

按要求补全函数模板。

#include <iostream>
#include <string>
using namespace std;

template <class T>
struct MyCopy {
// 在此处补充你的代码
    void operator()(T *a, T *a_m, T *b) {
        T t[200];
        T *e=a;
        for(int i=0; a != a_m; i++)
        {
            t[i]=*a;
            a++;
        }
        a=e;
        for(int i=0; a != a_m; i++){
            *b = t[i];
            b++;
            a++;
        }
    }
};

int a[200];
int b[200];
string c[200];
string d[200];

template <class T>
void Print(T s,T e) {
    for(; s != e; ++s)
        cout << * s << ",";
    cout << endl;
}

int main(){
    int m ;
    cin >> m;
    for(int i = 0;i < m; ++i)
        cin >> a[i];
    MyCopy<int>()(a,a+m,b);
    Print(b,b+m);
    MyCopy<int>()(a,a+m,a+m/2);
    Print(a+m/2,a+m/2 + m);
    for(int i = 0;i < m; ++i)
        cin >> c[i];
    MyCopy<string>()(c,c+m,d);
    Print(c,c+m);
    MyCopy<string>()(c,c+m,c+m/2);
    Print(c+m/2,c+m/2 + m);
    return 0;
}

在这里插入图片描述
在这里插入图片描述

posted @ 2022-11-17 20:27  ThinkStu  阅读(37)  评论(0)    收藏  举报