小编Fla*_*viu的帖子

基于std :: unordered_map(地图图)提升多索引容器与多级映射容器

我最近发现了boost :: multi_index_container,我对他的性能感到好奇,与我自己实现的基于多级映射的类似容器相比,定义如下:

typedef int      Data;
typedef uint64_t MainKey;
typedef uint64_t SecondaryKey;

typedef std::unordered_map<SecondaryKey, Data>       SecondaryMap;
typedef std::unordered_map<PrimaryKey, SecondaryMap> PrimaryMap;
Run Code Online (Sandbox Code Playgroud)

密钥排序并不重要.快速查找很重要,为此我使用的是:

// find primaryKey=10 and secondaryKey=30
PrimaryMap m;
....
auto i1 = m.find( 10);
if ( i1 != m.end())
{
    auto& secondary = i1->second;
    auto i2 = secondary.find( 30);
    if ( i2 != secondary.end())
    {
        found = true;
        ....
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道会是什么

  • boost :: multi_index_container最接近的配置,以匹配我的实现
  • 按主键和辅助键搜索的最快方法.

我试图配置模板,但我不确定这是否是最佳解决方案:

struct RecordKey
{
    MainKey         mainKey;
    SecondaryKey    secondaryKey;

    RecordKey( const MainKey mainKey, SecondaryKey secondaryKey): …
Run Code Online (Sandbox Code Playgroud)

c++ boost unordered-map std boost-multi-index

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

升级Indy库以使用最新的OpenSSL库

升级用Delphi编写的Indy库以使用具有最新功能的最新OpenSSL库(例如TLS v1.3)的过程是什么?

我发现的Indy库的最后一个版本使用libssl32.dll和ssleay32.dll DLL.最新的OpenSSL库生成libssl-1_1.dll和libcrypto-1_1.dll DLL.通过更改Indy libray中的DLL名称,OpenSSL DLL的动态加载失败,因为Indy中定义的许多函数与OpenSSL DLL的函数不匹配.因此OpenSSL API发生了变化.

据我所知,Delphi源文件应该升级Indy库的IdSSL*.pas:

  • IdSSL.pas
  • IdSSLDotNET.pas
  • IdSSLOpenSSL.pas
  • IdSSLOpenSSLHeaders.pas
  • IdSSLOpenSSLHeaders_static.pas
  • IdSSLOpenSSLUtils.pas

delphi openssl indy indy10

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

标签 统计

boost ×1

boost-multi-index ×1

c++ ×1

delphi ×1

indy ×1

indy10 ×1

openssl ×1

std ×1

unordered-map ×1