Tôi có mã python có chứa mã sau đây.Dịch từ điển python sang C++
d = {}
d[(0,0)] = 0
d[(1,2)] = 1
d[(2,1)] = 2
d[(2,3)] = 3
d[(3,2)] = 4
for (i,j) in d:
print d[(i,j)], d[(j,i)]
Thật không may lặp lại tất cả các khóa trong python không thực sự đủ nhanh cho mục đích của tôi và tôi muốn dịch mã này sang C++. Cấu trúc dữ liệu C++ tốt nhất để sử dụng cho một từ điển python có các bộ dữ liệu là các khóa của nó là gì? Điều gì sẽ là tương đương với C++ của đoạn mã trên?
Tôi đã xem các ma trận thưa thớt trong thư viện tăng nhưng không thể tìm thấy cách dễ dàng để chỉ lặp lại các phần tử khác 0.
Bạn đã cân nhắc bố cục dữ liệu khác chưa. Nếu (i, j) luôn được ghép nối với (j, i) thì bạn có thể không thực sự cần cả hai. Bạn chỉ có thể xây dựng hiệp hội tại thời điểm bạn đang xây dựng từ điển. Bạn chỉ có thể lưu trữ một dict của (i, j) trong cửa hàng nhập cảnh (d (i, j), d (j, i)). Điều này giả định những con số trong tuple có thể được tùy ý ra lệnh, điều đó có lẽ đúng. –
Ngoài ra, nếu bạn chỉ đang đi bộ, lưu trữ chúng trong một danh sách và đi bộ danh sách. –