Sử dụng Qt, tôi muốn mã này để làm việc:foreach không làm việc trên danh sách các QPair
QList<QPair<QString, QString>> list;
foreach (QPair<QString, QString> pair, list)
{
}
thay vào đó, tôi nhận được thông báo lỗi: 'cặp': không khai báo định danh
Sử dụng một typedef
tôi có thể làm cho nó hoạt động, nhưng đây không phải là những gì tôi muốn (trừ khi đây là điều duy nhất mà hoạt động):
typedef QPair<QString, QString> MyPair;
QList<MyPair> list;
foreach (MyPair pair, list)
{
}
bất cứ ai có thể giải thích lý do tại sao foreach đầu tiên làm không biên dịch?
Và bạn muốn gì? Có thể bạn cần foreach (cặp MyPair ** & **), danh sách) {} Btw. foreach - là macro, do đó việc sử dụng dấu phẩy bên trong không được chấp nhận. typedef - là giải pháp duy nhất. –
@DmitrySazonov: Tôi muốn sử dụng 'foreach' như trong bất kỳ trường hợp nào khác: f.e. Danh sách 'QList'; foreach (QString str, list) {} ' –
Xem bài viết đã chỉnh sửa của tôi;) –