118 条题解

  • -7
    @ 2024-8-25 23:25:23

    A1题解

    警告:此题解非正常题解,请不要以此作为标准

    解题方法

    使用c++11新特性:可变参数模板

    先定义了一个可以打印vector,array,initializer_list中内容的函数print()

    随后在main中分别定义"Hello MXOJ!\n"字符串拆解后的内容

    最后调用print()函数输出即可

    Code

    #include <bits/stdc++.h>
    using namespace std;
    void print() {}// 终止条件
    template<typename T, size_t N>
    void print(const array<T, N>& arr) {
        for (const auto& val : arr) {
            cout << val;
        }
    }
    template<typename T>
    void print(const vector<T>& vec) {
        for (const auto& val : vec) {
            cout << val;
        }
    }
    template<typename T>
    void print(const initializer_list<T>& init_list) {
        for (const auto& val : init_list) {
            cout << val;
        }
    }
    template<typename T>
    void print(const T& val) {
        cout << val;
    }
    template<typename T, typename... Types>
    void print(const T& val, const Types&... args) {
        print(val);
        print(args...);
    }
    int main() {
        ios::sync_with_stdio(0);
        cin.tie(nullptr);
        cout.tie(NULL);
        array<char, 6> hello = {'H', 'e', 'l', 'l', 'o', ','};
        string space(" ");
        vector<char> mx(2, 'M');
        mx.at(1) = 'X';
        initializer_list<char> oj = {'O', 'J', '!'};
        #define ENTER '\n'
        print(hello, space, mx, oj, ENTER);
        return 0;
    }
    

    信息

    ID
    1
    时间
    1000ms
    内存
    512MiB
    难度
    1
    标签
    (无)
    递交数
    2477
    已通过
    1210
    上传者