我最近发现了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)
我想知道会是什么
我试图配置模板,但我不确定这是否是最佳解决方案:
struct RecordKey
{
MainKey mainKey;
SecondaryKey secondaryKey;
RecordKey( const MainKey mainKey, SecondaryKey secondaryKey): …Run Code Online (Sandbox Code Playgroud) 升级用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: