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

  • 相关阅读:
    mysql存储过程笔记
    mysql 命令行操作
    第一天前来报到
    Android Studio导入工程版本问题、gradle版本问题
    LogUtils-定制自己的日志工具
    Git2.11安装下载和github使用
    Android Studio 2.3版本 以及相应的gradle3.3包
    android 导入第三方jar包和类库
    GifView——Android显示GIF动画
    Android中dip、dp、sp、pt和px的区别详解
  • 原文地址:https://www.cnblogs.com/kk328/p/10138505.html
Copyright © 2011-2022 走看看