我遇到了一个问题,在一个大向量上调用 std::vector.clear(),n > 1,000,000 需要很多秒。
它目前是结构的 std::vector,基本上是 POD。析构函数中不需要清理。我考虑将结构更改为类,因为我想向它们添加一些函数,但我不确定这将如何影响对大量这些类/结构的向量调用 clear。
归结为想知道 std::vector.clear() 何时会调用析构函数。我的印象是,这些天来,除了结构成员默认为公共之外,C++ 中的类和结构之间没有区别。
我不想不得不切换到使用 malloc、realloc 和释放自己并跟踪大小,只是因为我想保证不调用析构函数,但似乎我在调用 clear 时也会受到性能影响()。