Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
缓存STD::数组中的元素并在C++中自动保持一致_C++_Caching_Stdarray - Fatal编程技术网

缓存STD::数组中的元素并在C++中自动保持一致

缓存STD::数组中的元素并在C++中自动保持一致,c++,caching,stdarray,C++,Caching,Stdarray,我在std::数组中有许多类的实例。基于一个标准,我想选择一些并将指向它们的指针存储在一个单独的数组中——基本上是缓存。我计划使用“缓存”数组快速迭代选择多次,甚至在使用锁防护的单独线程中 我希望能够从原始阵列中删除和销毁实例,并保持缓存阵列的一致性 有没有一种优雅而自动的方法可以做到这一点?使原始数组包含指向对象的指针。然后,重新排列该数组不会改变实际对象。如果我需要销毁对象,该怎么办?标记为需要更多焦点。这取决于你想走多远,非常重要。有一些书是关于缓存一致性问题的。为了简单的需要。不过,这涉

我在std::数组中有许多类的实例。基于一个标准,我想选择一些并将指向它们的指针存储在一个单独的数组中——基本上是缓存。我计划使用“缓存”数组快速迭代选择多次,甚至在使用锁防护的单独线程中

我希望能够从原始阵列中删除和销毁实例,并保持缓存阵列的一致性


有没有一种优雅而自动的方法可以做到这一点?

使原始数组包含指向对象的指针。然后,重新排列该数组不会改变实际对象。

如果我需要销毁对象,该怎么办?标记为需要更多焦点。这取决于你想走多远,非常重要。有一些书是关于缓存一致性问题的。为了简单的需要。不过,这涉及到很多开销。例如,主数组必须包含std::shared_ptrs。谢谢,这是一个很好的建议。它将解决悬而未决的指针问题。我没有提到,但我想在时间关键型音频应用程序中使用缓存,因此我担心调用std::weak_ptr.lock来访问缓存对象。一秒钟内可能有几十万次。你必须测试它才能确定,但你的担心是有道理的。在这种访问率下,我想不出任何我愿意提出的建议。