我有一个用c ++实现的红黑树.它支持STL映射的功能.树节点包含键和映射的值.我想为此编写一个迭代器类,但我仍然坚持如何做到这一点.我应该将它作为Tree类的内部类吗?任何人都可以给我一些指导如何写它+一些资源?
谢谢!!
在iOS上用D编写应用程序的当前状态是什么?我对使用任何iOS API都不感兴趣,只是OpenGL/SDL.是否有可能在D中为iOS编写?如果是这样,那有多大的问题呢?
我正在为动态加载的库实现一个独立于平台的包装器.当然,当我从库中加载函数时,我需要将它们存储为指针以供将来使用.我想过使用boost :: function来代替普通的函数指针.当然,这会增加编译时间,但这不是我所害怕的.而是:
调用存储函数时boost :: function引入的开销是多少?有吗?它有多大?
我想在不时调用这些函数时我不会有太大的开销,但是,那些被调用的函数怎么样?(极端的例子,glVertex在加载的GL库上).它对性能有多大影响?
源头潜水提升没有多少回答:>.
此外,如果它依赖于编译器,我主要对GCC和MSVC感兴趣.
有很多关于如何在Lua中克隆Lua表的示例,但是我无法找到如何使用本机Lua C API执行此操作的任何示例.我试图用手做两次,但结果却是一个真正的(虽然有效)混乱.
有没有人有关于如何在C API中优雅地执行Lua表的浅表副本的任何提示或链接?
我想将8x8 二进制矩阵乘以由无符号字符表示的8位向量表示为无符号64位整数.但是,由于一些其他问题,矩阵必须按列排序,因此不容易匹配字节以便于乘法.
知道如何加快这样的计算吗?每项操作都是重要的,我需要进行数十亿次这样的计算.
乘法是在2元素场(F-2)上进行的.
对于拥有Linux技能且喜欢命令行的程序员来说,在Windows上使用什么更好 - Cygwin或GnuWin32?
我试图找到一个很好的比较或差异列表,但找不到任何远程完成的东西.此外,我想知道这是否应该是一个superuser.com问题,但决定反对它,因为我正在准确地要求程序员使用该工具.
我想知道每个解决方案的常见缺陷和限制.与Windows的互操作性是一个重要问题,因为我的主要开发是在MSVC中完成的......
首先,我想要一个普通的枚举而不是基于位的枚举,因为不同枚举的数量将超出任何整数类型.我也想利用C++ 11的类型安全性enum class.要做到这一点,自然的选择是std::bitset,但我不知道如何将这两者结合在一起.
需要定制bitset吗?如何绕过这样一个类的实现?
我遇到的一些类有一个双字符串构造函数:
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移动构造在这里改变了什么吗?
假设我有一个只接受类型模板参数的函数,我无法改变它的定义/实现.
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解决方案,但标记为这样.
在考虑使用Lua协同程序的游戏的加载/保存机制时,出现了一个非常有趣的问题 - 你可以将正在运行的Lua状态转储到文件中吗?除了倾销环境的明显解决方案之外,还出现了两个值得注意的问题 - 转储函数(我认为更容易),以及转储协同程序.
后者让我想知道,是否有可能为了以后的恢复呼叫而转储正在运行的协程.它的用途相当广泛 - 从长远来看,它将允许序列化正在运行的任务并将它们传递给Erlang样式.
因此问题 - 是否可能?
我不是在寻找(可能很明显)"不"的答案,因为它可能在某种程度上需要工作(在最坏的情况下,可能会试图破解编译器).我很感兴趣会有多难......