我已经能够BST通过几个来源找到几个自平衡的细节,但是我没有找到任何好的描述,详细描述哪个最适合在不同的情况下使用(或者如果它真的无关紧要).
我想要一个BST最适合存储超过一千万个节点的东西.节点的插入顺序基本上是随机的,我永远不需要删除节点,因此插入时间是唯一需要优化的东西.
我打算用它来存储益智游戏中先前访问过的游戏状态,以便我可以快速检查是否已经遇到过以前的配置.
我有一个很大的现有c ++代码库.通常,代码库的用户使用gvim编辑源代码,但我们想开始使用Eclipse中的漂亮IDE功能.代码库具有广泛的目录层次结构,但由于我们在构建过程中使用了一些伏都教,源文件使用包含指令而没有路径.当我在Eclipse中将源链接到我的项目时,索引器抱怨它找不到任何头文件(因为我们没有在我们的包中指定路径.)如果我手动将工作区中的目录添加到包含路径然后一切都运行得很好,但显然手动添加数百个目录是不可行的.是否有一个简单的方法告诉Eclipse在项目的任何地方查找包含文件而不必逐个添加它们?如果不,
我最近遇到了一个令人沮丧的问题,归结为一个非常简单的编码错误.请考虑以下代码:
#include <iostream>
class Base
{
public:
void func() { std::cout << "BASE" << std::endl; }
};
class Derived : public Base
{
public:
virtual void func() { std::cout << "DERIVED" << std::endl; }
};
int main(int argc, char* argv[])
{
Base* obj = new Derived;
obj->func();
delete obj;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出是
基础
显然(对于这种情况),我的意思是将虚拟关键字放在Base :: func上,以便在main中调用Derived :: func.我意识到这可能(可能)是由c ++标准允许的,并且可能有充分的理由,但在我看来,99%的时间这将是一个编码错误.但是,当我使用g ++和我能想到的所有-Wblah选项编译时,没有生成任何警告.
有什么方法可以在基类和派生类都具有相同名称的成员函数时生成警告,其中派生类的函数是虚函数而基类的函数不是?