小编Pau*_*nta的帖子

学习有效的算法

到目前为止,我主要集中在如何正确设计代码,使其尽可能可读和尽可能可维护.所以我总是选择了解编程的更高层次细节,例如类交互,API设计等.

我从未真正发现的算法特别有趣.因此,即使我可以为我的程序设计一个好的设计,即使我能够提出解决特定问题的解决方案,但它很少是最有效的.

是否有一种特殊的方式来思考可以帮助您提出尽可能高效的解决方案的问题,或者在实践和/或记忆方面是否简单?

此外,您可以推荐哪些在线资源,教您针对不同问题的各种高效算法?

algorithm complexity-theory

15
推荐指数
2
解决办法
2244
查看次数

什么是`type_info :: before`有用?

根据cplusplus.com,std::type_info::before()功能......

如果类型在排序规则顺序中位于rhs类型之前,则返回true .
整理顺序只是由特定实现保留的内部顺序,并不一定与继承关系或声明顺序相关.

那有什么用呢?

c++ rtti typeinfo

15
推荐指数
2
解决办法
5206
查看次数

如何生成`kwargs`列表?

从外部文件我生成以下字典:

mydict = { 'foo' : 123, 'bar' : 456 }
Run Code Online (Sandbox Code Playgroud)

给定一个带**kwargs参数的函数,如何从该字典生成keyword-args?

python kwargs

14
推荐指数
1
解决办法
7892
查看次数

如何安装SWIG?

Noob提前问题......

我正在尝试在Windows上安装SWIG.根据INSTALL文件,我必须

cd到包含程序包的源代码和类型的目录,./configure以配置系统的程序包.

我在根目录和目录中都尝试了这个命令/CCache(这些是唯一拥有configureconfigure.in文件的命令),但shell会报告

C:\swigwin-2.0.4>./configure
'.' is not recognized as an internal or external command,
operable program or batch file.

我错过了什么?

windows installation swig

14
推荐指数
3
解决办法
4万
查看次数

编译器内联功能有多深?

假设我有一些函数,每个函数大约有两行简单的代码,他们互相称呼:A调用B调用C调用D...调用K.(所以基本上它是一系列短函数调用.)编译器通常会在调用树中深入内联这些函数有多深?

c++ compiler-construction inline function

14
推荐指数
2
解决办法
3117
查看次数

为什么`boost :: any`比`void*更好?

使用和提供什么固有的优势boost::anyboost::any_cast提供?void*dynamic_cast

c++ boost variadic void-pointers

14
推荐指数
4
解决办法
6598
查看次数

如何使用Boost.Python定义Python元类?

Python C API具有PyObject *PyType_Type对象,它type与解释器中的对象相同.如果我想在C++中定义一个元类,我如何type在Boost.Python中设置它的基础之一?另外,在C++中定义Python元类时,我应该考虑哪些其他事项?

如果有一个Boost.Python解决方案,这将是理想的.如果没有,使用Python C API(或Boost和C API的组合)的解决方案也是好的.由于我的其他课程都有Boost,所以我宁愿将SWIG作为最后的手段.

注意:这实际上是我正在尝试解决的一个更大问题的一部分,如果您感兴趣,我已经在使用Boost.Python设置包装类的元类时询问过.

c++ python metaclass boost-python python-3.x

14
推荐指数
1
解决办法
1202
查看次数

`int a = 0,b = a`是否有未定义的行为?

问题标题说明了一切:表单的声明int a = 0, b = a是否有未定义的行为?

c++ declaration undefined-behavior

13
推荐指数
2
解决办法
642
查看次数

可以Pickle处理多个对象引用

如果我有对象ab两个引用对象obj,当我Pickle然后恢复对象时会发生什么?腌制数据是否"知道" a并且b都引用相同的对象并相应地恢复所有内容,或者两者会得到两个不同的 - 最初是相等的 - 对象?

python pickle

12
推荐指数
2
解决办法
1691
查看次数

如何将多参数模板传递给宏?

说我有这样的宏:

#define SET_TYPE_NAME(TYPE, NAME) \
    template<typename T>          \
    std::string name();           \
                                  \
    template<>                    \
    std::string name<TYPE>() {    \
        return NAME;              \
    }
Run Code Online (Sandbox Code Playgroud)

如果我传递一个具有多个参数的模板,这将无效,因为其中的逗号<int, int>被解释为分隔参数,而不是模板参数.

SET_TYPE_NAME(std::map<int, int>, "TheMap")
// Error: macro expects two arguments, three given
Run Code Online (Sandbox Code Playgroud)

这样做似乎可以解决这个问题:

SET_TYPE_NAME((std::map<int, int>), "TheMap")
Run Code Online (Sandbox Code Playgroud)

但现在出现了另一个问题,我真的没想到的问题:

 template<>
 std::string name<(std::map<int, int>)>()
 // template argument 1 is invalid
Run Code Online (Sandbox Code Playgroud)

似乎额外的括号使模板参数无效.有没有办法解决?

c++ macros templates

12
推荐指数
3
解决办法
6058
查看次数