zoukankan      html  css  js  c++  java
  • 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实现的代码更加简洁。

  • 相关阅读:
    webpack搭建react+ts+eslint项目
    eslint规则详解
    js源码-自定义数组的pop和shift方法
    js源码-数组中的push()和unshift()方法的源码实现
    mac 下载MySQL后,需要这样打开
    react-(错误代码#31----Minified React error #31)
    人生反思:养殖场的猪该如何度过猪生?
    人生反思:做一头拉磨的驴子还是千里马?
    地图轨迹内插采集点
    同时支持回调和Promise的函数-callbackOrPromiseFn
  • 原文地址:https://www.cnblogs.com/kk328/p/10138505.html
Copyright © 2011-2022 走看看