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实现的代码更加简洁。

  • 相关阅读:
    The specified framework 'Microsoft.NETCore.App', version '1.0.1' was not found 解决办法
    docker registry push错误“server gave HTTP response to HTTPS client”
    windows server 2016安装docker
    Opserver 初探三《服务器数据监控》
    Opserver 初探二《exceptions配置》
    Opserver 初探一《Opserver的搭建》
    centos 7 免密登录
    nginx 入门配置
    php适配器模式
    进程和线程
  • 原文地址:https://www.cnblogs.com/kk328/p/10138505.html
Copyright © 2011-2022 走看看