小编She*_*evy的帖子

最快的C#Serializer

我需要序列化OrderedDictionary,我需要它快速.我不关心安全性或人类可读性,我只需要以最快的方式将OrderedDictionary写入文件并再次读回来,只要序列化是一致的(同一组键值对,相同的文件内容) ).BinaryFormatter是最佳选择吗?

.net c# serialization

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

各种WG14 C标准在独立实施方面有何不同?

实现以下每种不同标准的独立部分的编制者如何区别?支持所有模式所需的模式数量最少(例如,由命令行标志指定)是什么?

  1. ISO/IEC 9899:1990
  2. ISO/IEC 9899:1990 + ISO/IEC 9899 TCOR1
  3. ISO/IEC 9899:1990 + ISO/IEC 9899 TCOR1 + ISO/IEC 9899 AM1
  4. ISO/IEC 9899:1990 + ISO/IEC 9899 TCOR1 + ISO/IEC 9899 AM1 + ISO/IEC 9899 TCOR2
  5. ISO/IEC 9899:1999
  6. ISO/IEC 9899:1999 + ISO/IEC 9899:1999 Cor.1:2001(E)
  7. ISO/IEC 9899:1999 + ISO/IEC 9899:1999 Cor.1:2001(E)+ ISO/IEC 9899:1999 Cor.2:2004(E)
  8. ISO/IEC 9899:1999 + ISO/IEC 9899:1999 Cor.1:2001(E)+ ISO/IEC 9899:1999 Cor.2:2004(E)+ ISO/IEC 9899:1999 Cor.3:2007(E)
  9. ISO/IEC 9899:2011

c compiler-construction standards

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

为什么在ISO/IEC 14882:2011中定义了明显的"线程间发生"关系?

ISO/IEC 14882:2011(C++ 11)第1.10.11节定义了评估之间的"线程之间发生的关系",它与第1.10.12节中"之前发生"关系的唯一区别在于A发生在B之前A在B之前排序,但这对于B之前的线程间发生是不够的.为什么"之间的线程发生"重要到足以保证单独的定义?

第1.10.11节中的注释表明"之前发生的线程间"不允许评估的唯一关系是"之前"排序的部分

允许"之前发生的线程间"被传递关闭

那是什么意思?我知道什么是传递闭包,我知道一个集合在一些操作上关闭意味着什么,但我从来没有听说过"过渡性关闭",Google和上下文都让我失望.

c++ multithreading memory-model c++11

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

std :: unique_ptr ABI与原始指针兼容吗?

我的阅读std::unique_ptr使我确信它(以及其他智能指针)绝对是项目内部指针的最佳选择(特别是在优化编译器可以从std :: unique_ptr中删除所有运行时成本之后?),但我是还不确定在界面上做什么.我不完全了解各种C++ ABI是如何工作的,所以如果这是一个愚蠢的问题请耐心等待,但是可以使用或返回指针,具有指针成员的类/结构等的函数被替换为使用的东西unique_ptr(也许使用unique_ptrrefs?)而不需要重新编译?C代码可以在unique_ptr没有复杂的情况下与C++接口交互吗?

c++ abi unique-ptr binary-compatibility c++11

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

如果后代类没有非静态成员或析构函数,是否需要虚拟析构函数?

我在玩弄一个类层次结构的文件描述符,其中基础类包含一个int并调用close期间破坏和子类不添加任何虚拟方法或数据成员就可以了,只是在其结构不同(例如named_file_filedes需要路径并open在ctor)或非虚拟成员函数中初始化基数(例如,您只能调用keventa kqueue_filedes).鉴于此,基类是否需要虚拟析构函数?子类的大小完全相同,并且没有一个具有自定义销毁逻辑.标记c++11为我的目标标准版本.

c++ virtual-destructor c++11

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

将C#字典与"黄金标准"字典进行比较的最快方法是什么?

我有一个已知良好的字典,并在运行时我需要建立一个新的字典和运行检查,看它是否具有相同的键值对作为已知的正确解释(按不同的顺序潜在的插入),并采取如果它有一条路径,如果没有则另一条路径.我不一定需要序列化整个已知良好的字典(我可以使用哈希,例如),但我需要的是具有对已知良好的字典足够的信息,一些磁盘上的数据,以便进行比较,如果不娱乐.最快的方法是什么?我可以使用SortedDictionary,但初始化和添加值所需的时间量计入此任务的速度.

具体例子:

考虑一个<String,List<String>>看起来像这样的字典(显然没有特定的顺序):

{ {"key1", {"value1", "value2"} }, {"key2", {"value3", "value4"} } }  
Run Code Online (Sandbox Code Playgroud)

我创建了一次Dictionary并在磁盘上保存了一些关于它的信息(一个完整的序列化,一个哈希,等等).然后,在运行时,我执行以下操作:

Dictionary<String,List<String>> d1 = new Dictionary<String,List<String>> ();
Dictionary<String,List<String>> d2 = new Dictionary<String,List<String>> ();
Dictionary<String,List<String>> d3 = new Dictionary<String,List<String>> ();

String key11 = "key1";
String key12 = "key1";
String key13 = "key1";
String key21 = "key2";
String key22 = "key2";
String key23 = "key2";

List<String> value11 = new List<String> {"value1", "value2"};
List<String> value12 = new List<String> {"value1", "value2"};
List<String> value13 = new List<String> {"value1", "value2"};
List<String> …
Run Code Online (Sandbox Code Playgroud)

c# serialization dictionary

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