小编jam*_*o00的帖子

将整数标识符转换为指针

我有类型的ID值unsigned int.我需要在恒定时间内将Id映射到指针.


主要分布:

ID的值范围为0到uint_max.大多数密钥将聚集到一个组中,但会有异常值.


执行:

  • 我想过使用C++ ext hash_map的东西,但我听说当密钥具有巨大的潜在范围时,它们的性能不会太差.

  • 我还想过使用某种形式的链式查找(相当于递归地将范围细分为C chucks).如果范围中没有键,则该范围将指向NULL.

    N =键范围

    等级0(分为C = 16,所以16件)= [0,N/16),[N/16,2*(N/16)),...

    1级(分为C = 16,所以16*16件)= ...


是否有其他人对如何更有效地实施此映射有想法?

更新:

通过常量,我只是意味着每个键查找不会受到项中值的显着影响.我并不是说它必须是一个单一的操作.

c++ algorithm hash hashtable data-structures

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

C++:隐藏基本静态成员

在C++中,是否可以让子类"隐藏"基类的静态字段和方法?(即A有一个名为ABC的字段为int,B:A和B有一个名为ABC的字段为int的字段)

c++ oop static field class

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

F#异步映射不同的类型

有没有办法使用f#执行以下操作?

let expr0:Async<int> = get0...
let expr1:Async<string> = get1...
//please pretend that this compiles
let finalFuture:Async<string> = 
    Async.Map2 expr0 expr1 (fun (v0:int) (v1:string) -> v0 + v1 ) 

let final:string = Async.RunSynchronously finalFuture
Run Code Online (Sandbox Code Playgroud)

f# asynchronous functional-programming

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

嵌入Mono - 本机 - >托管上下文切换的开销

任何人都有关于Mono中本机 - >托管上下文切换的开销的任何细节?即通过使用C API调用.NET方法/创建.NET对象而导致的开销.

c# mono jit

0
推荐指数
1
解决办法
652
查看次数

强制预处理器在重定义中使用先前的定义

更新3:

没关系.我有点得到我想要的东西.以下内容给出了类中的唯一标识符.

static const int _counter_start = __COUNTER__;
static const int val1 = __COUNTER__ - _counter_start;
static const int val2 = __COUNTER__ - _counter_start;
Run Code Online (Sandbox Code Playgroud)

更新2:

提升预处理器

我将使用此功能实现类似于消息映射的内容.

class a
{
...
    MAP_BEGIN()
    MAP_DECL...
    MAP_END()
...
};
Run Code Online (Sandbox Code Playgroud)

问题是,对于每个MAP_DECL,我需要在两个地方扩展宏.

class a
{    
    virtual void func()
    {        
        ...
        //does something with the decl declaration        
    }
    ...
    //also expand some stuff here    
}
Run Code Online (Sandbox Code Playgroud)

Boost预处理器应该(理论上)允许我将MAP_DECL累积到一个序列中并在最后将它扩展为func()(同时在我们去的同时扩展类字段).


更新1:

我目前正在使用Boost预处理器库.我每次需要在序列中添加一些内容时,我目前无法创建一个新的宏变量/定义,如下所示.

我正在尝试扩展Boost预处理器序列,而我现在仍然坚持这样做

#define SEQ (w)(x)(y)(z) 
#define SEQ2 BOOST_PP_SEQ_PUSH_BACK(SEQ, a)
Run Code Online (Sandbox Code Playgroud)

原文:

假设我有以下代码

#define CUR 2
#define …
Run Code Online (Sandbox Code Playgroud)

c++ g++ c-preprocessor boost-preprocessor

0
推荐指数
1
解决办法
1699
查看次数

C#字典组成

假设我有一份A的仲裁清单

class A
{
string K {get;set;}
string V {get;set;}
}

...
List<A> theList = ...
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法从列表中组成字典?(如下所示)

Dictionary<string, string> dict = magic(x => x.K, x => x.V, theList)
Run Code Online (Sandbox Code Playgroud)

我不想写下面的代码:

var d = new Dictionary<string, string>
foreach(var blah in theList)
    d[blah.K] = blah.V
Run Code Online (Sandbox Code Playgroud)

.net c# dictionary functional-programming composition

0
推荐指数
1
解决办法
227
查看次数