小编Kor*_*icz的帖子

迭代器类的指南

我有一个用c ++实现的红黑.它支持STL映射的功能.树节点包含键和映射的值.我想为此编写一个迭代器类,但我仍然坚持如何做到这一点.我应该将它作为Tree类的内部类吗?任何人都可以给我一些指导如何写它+一些资源?

谢谢!!

c++ templates iterator red-black-tree

9
推荐指数
1
解决办法
4261
查看次数

iOS上的D支持状态

在iOS上用D编写应用程序的当前状态是什么?我对使用任何iOS API都不感兴趣,只是OpenGL/SDL.是否有可能在D中为iOS编写?如果是这样,那有多大的问题呢?

d ios

8
推荐指数
2
解决办法
1093
查看次数

boost :: function运行时性能

我正在为动态加载的库实现一个独立于平台的包装器.当然,当我从库中加载函数时,我需要将它们存储为指针以供将来使用.我想过使用boost :: function来代替普通的函数指针.当然,这会增加编译时间,但这不是我所害怕的.而是:

调用存储函数时boost :: function引入的开销是多少?有吗?它有多大?

我想在不时调用这些函数时我不会有太大的开销,但是,那些被调用的函数怎么样?(极端的例子,glVertex在加载的GL库上).它对性能有多大影响?

源头潜水提升没有多少回答:>.

此外,如果它依赖于编译器,我主要对GCC和MSVC感兴趣.

c++ boost boost-function

7
推荐指数
1
解决办法
5110
查看次数

在Lua C API中克隆Lua表

有很多关于如何在Lua中克隆Lua表的示例,但是我无法找到如何使用本机Lua C API执行此操作的任何示例.我试图用手做两次,但结果却是一个真正的(虽然有效)混乱.

有没有人有关于如何在C API中优雅地执行Lua表的浅表副本的任何提示或链接?

c lua lua-api

7
推荐指数
1
解决办法
2805
查看次数

二进制矩阵向量乘法

我想将8x8 二进制矩阵乘以由无符号字符表示的8位向量表示为无符号64位整数.但是,由于一些其他问题,矩阵必须按列排序,因此不容易匹配字节以便于乘法.

知道如何加快这样的计算吗?每项操作都是重要的,我需要进行数十亿次这样的计算.

乘法是在2元素场(F-2)上进行的.

c vector matrix binary-matrix

7
推荐指数
2
解决办法
3076
查看次数

GnuWin32或Cygwin - 从程序员的角度来看

对于拥有Linux技能且喜欢命令行的程序员来说,在Windows上使用什么更好 - Cygwin或GnuWin32?

我试图找到一个很好的比较或差异列表,但找不到任何远程完成的东西.此外,我想知道这是否应该是一个superuser.com问题,但决定反对它,因为我正在准确地要求程序员使用该工具.

我想知道每个解决方案的常见缺陷和限制.与Windows的互操作性是一个重要问题,因为我的主要开发是在MSVC中完成的......

windows command-line cygwin emulation gnuwin32

7
推荐指数
1
解决办法
2473
查看次数

使用带有std :: bitset的枚举类

首先,我想要一个普通的枚举而不是基于位的枚举,因为不同枚举的数量将超出任何整数类型.我也想利用C++ 11的类型安全性enum class.要做到这一点,自然的选择是std::bitset,但我不知道如何将这两者结合在一起.

需要定制bitset吗?如何绕过这样一个类的实现?

c++ c++11 enum-class std-bitset

7
推荐指数
1
解决办法
4839
查看次数

高效的字符串构造函数

我遇到的一些类有一个双字符串构造函数:

 construct( const std::string& s );
 construct( const char* s );
Run Code Online (Sandbox Code Playgroud)

拥有一个std::string构造函数具有能够传递一个std::string没有的明显好处c_str().但是,如果参数存储在std :: string中,那么const char*构造函数是否有任何好处?

特别是:

 construct( const std::string& s ) : m_string( s ) {}
 construct( const char* s ) : m_string( s ) {}
 std::string m_string;
Run Code Online (Sandbox Code Playgroud)

对于字符串文字和char*变量,第二个构造函数会更快,还是会被优化掉?

附加问题 - C++ 11移动构造在这里改变了什么吗?

c++ string

7
推荐指数
2
解决办法
1237
查看次数

打开包装清单

假设我有一个只接受类型模板参数的函数,我无法改变它的定义/实现.

template < typename T >
void do_it();
Run Code Online (Sandbox Code Playgroud)

现在我有一个通常的方式定义的类型列表,也不能改变它:

template< typename ...Ts >
struct typelist;
Run Code Online (Sandbox Code Playgroud)

我想实现一个带有类型列表的函数,并在每个类型上运行do_it():

template< typename List >
void do_them();
Run Code Online (Sandbox Code Playgroud)

我找到的唯一解决办法是:

template< typename T >
void do_them_impl()
{
   do_it<T>();
}

template< typename T, typename Ts...>
void do_them_impl()
{
   do_it<T>();
   do_them_impl<Ts...>();
}

template< template < typename...> class List, typename ...Ts >
void do_them_extract( List<Ts...>&& )
{
    do_them_impl< Ts >(); 
}

template< typename List >
void do_them()
{
    do_them_impl( List{} ); 
}
Run Code Online (Sandbox Code Playgroud)

但是对于我想要创建单个do_them函数的每种情况,这需要4个(!)函数.我将需要其中的一些,我不想为每个函数编写四个函数.我错过了什么吗?

C++ 14欢迎,C++ 17解决方案,但标记为这样.

c++ templates variadic-templates c++14 c++17

7
推荐指数
1
解决办法
991
查看次数

你可以将一个正在运行的Lua协程转储到一个文件中以便以后恢复吗?

在考虑使用Lua协同程序的游戏的加载/保存机制时,出现了一个非常有趣的问题 - 你可以将正在运行的Lua状态转储到文件中吗?除了倾销环境的明显解决方案之外,还出现了两个值得注意的问题 - 转储函数(我认为更容易),以及转储协同程序.

后者让我想知道,是否有可能为了以后的恢复呼叫而转储正在运行的协程.它的用途相当广泛 - 从长远来看,它将允许序列化正在运行的任务并将它们传递给Erlang样式.

因此问题 - 是否可能?

我不是在寻找(可能很明显)"不"的答案,因为它可能在某种程度上需要工作(在最坏的情况下,可能会试图破解编译器).我很感兴趣会有多难......

lua serialization coroutine

5
推荐指数
1
解决办法
2253
查看次数