c++ - 如何检查阵列更新

原文 标签 c++ arrays memory

我的程序中有一些数据类型的数组(int,字符串或什至用户定义的类对象)和多个线程。我希望能够找到使用某些值初始化后的数组是否已更新。一种想法是关联数组中值的哈希,并且每当我要检查数组是否已更新时,都应重新计算哈希。在c ++中还有其他方法吗?还是可以检查自上次检查以来内存地址的范围是否已更新?

谢谢

最佳答案

您可以将数组封装在一个类模板中,该模板为所需的任何读写操作提供外观,并在数组dirty更新时对其进行标记-在每次检查时重置dirty标志。

不确定如何使它在多个读取器/写入器线程中可靠,但是我想这取决于访问模式和所需的确切语义。

[散列不起作用,因为散列总是会冲突。]

关于c++ - 如何检查阵列更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4288995/

相关文章:

c++ - 像这样的C++模板构造函数

c++ - 使用 for_each 和 bind 反转 vector 中的字符串

c++ - 用于输出 varchar 的 SQLBindParameter

javascript - 遍历数组中的JSON对象

java - 在 map 中执行 removeAt 时出现 ArrayIndexOutOfBoundsException

c - 使用 strcat 错误的字符串连接

c - 预取对齐的内存

performance - 为什么 memcpy() 的速度每 4KB 就会急剧下降?

c++ - C/C++ 程序有没有办法在 main() 之前崩溃?

内存中异常的 Java 大小