我们现在拥有许多新功能的C++ 11.一个有趣且令人困惑的(至少对我来说)是新的nullptr
.
嗯,不再需要令人讨厌的宏了NULL
.
int* x = nullptr;
myclass* obj = nullptr;
Run Code Online (Sandbox Code Playgroud)
尽管如此,我还没有得到如何nullptr
运作.例如,维基百科的文章说:
C++ 11通过引入一个new 关键字作为一个区分空指针常量来解决这个问题:nullptr.它的类型为nullptr_t,它是可隐式转换的,可与任何指针类型或指向成员类型的类型相媲美.除了bool之外,它不可隐式转换或与整数类型相比.
它是一个关键字和一个类型的实例?
另外,你有另一个例子(在维基百科旁边)哪里nullptr
优于好老0
?
虽然我理解模拟和仿真的含义一般,但我几乎总是对它们感到困惑.假设我创建了一个模仿现有硬件/软件的软件,我该怎么称呼它?模拟器还是模拟器?
任何人都能解释编程方面的差异吗?
额外奖励:这两个术语的英语差异是什么?(对不起,我不是母语人士:))
只是我正在寻找的一个例子:我可以用一点代表每个奇数,例如对于给定的数字范围(1,10),从3开始:
__PRE__
以下字典可以挤得更对吗?我可以通过一些工作来消除五的倍数,但是以1,3,7或9结尾的数字必须在位数组中存在.希望这能澄清我想要的东西.
我正在寻找最好的算法,检查数字是否是素数,即布尔函数:
__PRE__
我想知道实现此功能的最佳算法.当然,我可以查询一个数据结构.我定义了最好的算法,它是生成数据结构的算法,该数据结构具有最低的内存消耗范围(1,N),其中N是常量.
C++ 0x正在引入unordered_set
,可以在boost
许多其他地方使用.我理解的是unordered_set
具有O(1)
查找复杂性的哈希表.另一方面,set
只是具有log(n)
查找复杂性的树.为什么人们会使用set
而不是unordered_set
?即是否需要set
了?
我不明白Lua这一部分的决定背后的理由.为什么索引从1开始?我读过(和其他人一样)这篇伟大的论文.在我看来,语言的一个奇怪的角落是非常愉快的学习和编程.不要误会我的意思,Lua很棒,但必须在某处做出解释.我发现的大部分内容(在网上)只是说索引从1开始.完全停止.
阅读其设计师对该主题的看法将是非常有趣的.
请注意,我在Lua中"非常"初学者,我希望我不会错过关于表格的明显内容.
你能举个例子static_assert(...)
来优雅地解决问题吗?
我熟悉运行时assert(...)
.我什么时候应该static_assert(...)
比常规更喜欢assert(...)
?
此外,boost
有一个叫做的东西BOOST_STATIC_ASSERT
,它是一样的static_assert(...)
吗?
我正在为想要学习动态编程的人寻找一个易于理解的例子.关于什么是动态编程,这里有很好的答案.斐波那契序列是一个很好的例子,但它太小而不能划伤表面.它看起来是一个很好的主题,虽然我尚未参加算法课程,但希望它在我的春季名单上.
我正在尝试使用带有C++的NDK,并且似乎无法使方法命名约定正确.我的原生方法如下:
extern "C" {
JNIEXPORT void JNICALL Java_com_test_jnitest_SurfaceRenderer_drawFromJni
(JNIEnv* env, jclass c)
{
//
}
}
Run Code Online (Sandbox Code Playgroud)
标题包含在extern"C"{} aslo中.
一切编译都很好,创建一个.so文件并复制到我的项目下的libs文件夹,但是当我在Eclipse中调试并运行时,我不断收到"没有找到本机的实现......"的日志cat消息.因为所有NDK示例都在C中,我有什么遗漏吗?
谢谢.
在C++中使用一个而不是另一个有什么优缺点?
我有一个关于哪种样式是首选的问题:std :: bind Vs lambda在C++ 0x中.我知道它们服务于某些不同的目的,但我们举一个交叉功能的例子.
使用lambda
:
uniform_int<> distribution(1, 6);
mt19937 engine;
// lambda style
auto dice = [&]() { return distribution(engine); };
Run Code Online (Sandbox Code Playgroud)
使用bind
:
uniform_int<> distribution(1, 6);
mt19937 engine;
// bind style
auto dice = bind(distribution, engine);
Run Code Online (Sandbox Code Playgroud)
我们应该选择哪一个?为什么?假设与上述示例相比情况更复杂.即一个优于另一个的优点/缺点是什么?