• c++容器加迭代器和python装饰器的对比


    c++利用对象实现简单数据的测试:

    class TestDataEmptyArray {
    public:
        static vector<int> get_array() {
            std::vector<int> vec {};
            return vec;
        }
    
    };
    
    class TestDataUniqueValues {
    public:
        static vector<int> get_array() {
            // declare a vector with minimum 2 values that are unique
            std::vector<int> vec {1, 2, 3, 4, 5};
            return vec;
        }
    
        static int get_expected_result() {
            //declare the former vector
            std::vector<int> vec {get_array()};
            //search for the smallest element with algorithm
            std::vector<int>::iterator result = std::min_element(std::begin(vec), std::end(vec));
            //return the index of the smallest element as a type int
            return std::distance(std::begin(vec), result);
        }
    
    };
    
    class TestDataExactlyTwoDifferentMinimums {
    public:
        static vector<int> get_array() {
            //declare a vector that has atleast 2 non unique number in it
            std::vector<int> vec {1, 2, 3, 4, 3, 2, 1};
            return vec;
        }
    
        static int get_expected_result() {
            //declare tha former vector
            std::vector<int> vec {get_array()};
            ////search for the smallest element with algorithm
            std::vector<int>::iterator result = std::min_element(std::begin(vec), std::end(vec));
            //return the index of the smallest element as a type int
            return std::distance(std::begin(vec), result);
        }
    
    };

    python 利用装饰器进行实现

    class TestDataEmptyArray(object):
        
        @staticmethod
        def get_array():
            return []
    
    class TestDataUniqueValues(object):
    
        @staticmethod
        def get_array():
            arr = [2,3,4,6,5]
            return arr
    
        @staticmethod
        def get_expected_result():
            return 0
    
    class TestDataExactlyTwoDifferentMinimums(object):
    
        @staticmethod
        def get_array():
            arr = [2,3,4,2,4]
            return arr
    
        @staticmethod
        def get_expected_result():
            return 0

    相比较来说,python实现的代码更加简洁。

  • 相关阅读:
    bsgs整理
    一个数的(勾股数)组
    bzoj4709 柠檬 单调栈,DP,斜率优化
    bzoj 3437 小p的农场
    luoguP4072 [SDOI2016]征途
    结构体/构造函数初始化
    UVA1103 古代象形符号 Ancient Messages 题解
    原创100篇文章祭
    UVA297 四分树 Quadtrees 题解
    stack用法,queue用法,
  • 原文地址:https://www.cnblogs.com/kk328/p/10138505.html
Copyright © 2020-2023  润新知