Tôi có một cấu trúc dữ liệu trong đó bao gồm 1.000 phần tử mảng, mỗi phần tử mảng là một mảng nhỏ của 8 ints:Mảng đa mảng được đa luồng?
std::array<std::array<int, 8>, 1000>
Cấu trúc dữ liệu chứa hai "con trỏ", mà theo dõi các phần tử mảng lớn nhất và nhỏ dân cư (trong mảng "bên ngoài", 1000 phần tử). Vì vậy, ví dụ: họ có thể là:
min = 247
max = 842
Làm cách nào để đọc và ghi vào cấu trúc dữ liệu này từ nhiều chủ đề? Tôi lo lắng về điều kiện chủng tộc giữa các yếu tố đẩy/popping và duy trì hai "con trỏ". Chế độ hoạt động cơ bản của tôi là:
// Pop element from current index
// Calculate new index
// Write element to new index
// Update min and max "pointers"
Làm thế nào để bạn bật từ 'std :: array'? – nwp
Bạn có thường xuyên truy cập vào nó không? Một khóa toàn cầu có thể là enogh. –
@nwp bạn loại bỏ giá trị và bỏ trống phần tử mảng ...... không quá khó khăn. – user997112