Tôi đã tình cờ gặp vấn đề này: Tôi dường như không thể chọn mục ở vị trí của chỉ mục trong tập lệnh std bình thường ::. Đây có phải là lỗi trong STD không?Phần tử tại chỉ mục trong tiêu chuẩn :: được đặt?
Dưới đây là một ví dụ đơn giản:
#include <iostream>
#include <set>
int main()
{
std::set<int> my_set;
my_set.insert(0x4A);
my_set.insert(0x4F);
my_set.insert(0x4B);
my_set.insert(0x45);
for (std::set<int>::iterator it=my_set.begin(); it!=my_set.end(); ++it)
std::cout << ' ' << char(*it); // ups the ordering
//int x = my_set[0]; // this causes a crash!
}
Bất cứ điều gì tôi có thể làm gì để khắc phục vấn đề?
'my_set [0]' không được biên dịch. – chris
Bạn đang đặt câu hỏi sai, vì bạn đang sử dụng vùng chứa sai. Mỗi thùng chứa tiêu chuẩn đã được thiết kế với một số lượng sử dụng nhất định trong tâm trí, và lần lượt không cho phép người khác (trực tiếp). Vì vậy, trước tiên, bạn cần phải xác định những hoạt động bạn cần và sau đó [chọn đúng container] (http://stackoverflow.com/questions/10699265/how-can-i-efficiently-select-a-standard-library- container-in-c11/10701102 # 10701102) –
Bản sao có thể có của [Lấy phần tử từ chỉ mục tùy ý trong tập hợp] (http: // stackoverflow.com/questions/8907435/get-element-from-arbitrary-index-in-set) –