Tôi tất cả các bạn,Cách lấy phần tử đầu tiên của tiêu chuẩn :: set
Tôi đã tìm thấy một lỗi lạ trong phần mềm của mình.
Bên trong một vòng lặp while nơi tôi loại bỏ các yếu tố từ một std :: set, tôi muốn luôn để có những yếu tố đầu tiên cho đến khi container rỗng:
std::set< int*> nodes;
// Fill nodes
for (int i=0; i<10;i++)
nodes.insert(new int);
//
while (!nodes.empty())
{
int* pivot = (*nodes.begin());
// do some operation with pivot erasing some elements from nodes
}
tôi thấy rằng việc thực hiện các yếu tố đầu tiên theo cách này công trình với gcc nhưng không phải với MSVC, nó bị treo ở nơi tôi cố gắng dereference bộ lặp vòng (*nodes.begin())
.
Thực hiện hai lệnh std :: set có hoạt động khác không?
Tôi muốn có cấu trúc dữ liệu không có sự khác biệt về triển khai, có thể không?
Có lẽ tôi phải thay đổi cấu trúc dữ liệu cho các loại hình hoạt động
gì sẽ xảy ra sau khi dereference của bạn? – Nick
Điều gì là "thực hiện một số thao tác với trục xóa một số phần tử khỏi các nút" –
chỉ cần dereference như thế này * (nodes.begin()) – v01d