Reverse Iterator để có danh sách (C )

R

rogger123

Guest
Hi,
Tôi có một vấn đề biên dịch các đoạn mã sau đây sử dụng itretor đảo ngược cho một danh sách.# Bao gồm <iostream>
# Bao gồm <list>
sử dụng tên miền không gian tiêu chuẩn;

/ / Hiển thị các yếu tố theo thứ tự ngược
template <class T>
void displayListRev (const danh sách <T> & lst)
(
danh sách <T>:: reverse_iterator RL;
cho (RL = lst.rbegin (); lst.rend <RL (); RL)
cout <<* RL <<'';
cout <<endl;
)

int main ()
(
danh sách <int> listType;
listType.push_back (10);
listType.push_back (30);

listType.sort ();
cout <<"Danh sách các nội dung theo thứ tự ngược:";
displayListRev (listType);
trở về 0;
)nó mang lại cho tôi lỗi cho "cho" vòng lặp.một trong những lỗi này là dán dưới đây:
"Nhị phân '=': không điều hành được xác định sẽ đưa một toán hạng tay phải của loại 'lớp học tiêu chuẩn:: <reverse_bidirectional_iterator lớp học tiêu chuẩn:: int <danh sách, lớp học tiêu chuẩn:: <int> cấp phát>:: const"Nếu tôi được thoát khỏi chức năng 'displayListRev (listType)' và thay vào đó thêm mã chức năng correcponding trong phạm vi chức năng chính, lỗi giải quyết được và đầu ra chính xác được tạo ra.
Có thể có người giải thích lý do cho hành vi này.
Các mã đổi lần là như dưới đây:

# Bao gồm <iostream>
# Bao gồm <list>
sử dụng tên miền không gian tiêu chuẩn;

int main ()
(
danh sách <int> listType;
danh sách <int>:: reverse_iterator RL;
listType.push_back (50);
listType.push_back (30);

listType.sort ();
cout <<"Danh sách các nội dung theo thứ tự ngược:";
cho (RL = listType.rbegin (); RL! = listType.rend (); RL)
cout <<* RL <<'';
trở về 0;
)

Liên quan
rogger123

 
Nếu bạn nhìn kỹ vào định nghĩa của chức năng của bạn

template <class T>
void displayListRev (const danh sách <T> & lst)

Bạn có tuyên bố lst tham số của const loại.
Vì vậy để lặp qua danh sách bạn phải sử dụng một trong
của vòng lặp const, tức là
danh sách <T>:: const_reverse_iterator RL;

Điều này nên sửa chữa cảnh báo về trình biên dịch của bạn không được có thể
để làm các việc chuyển nhượng.

Alpha

 
cảm ơn cho giải pháp ... như bạn nói, nó là const "đã được tạo ra vấn đề.

 

Welcome to EDABoard.com

Sponsor

Back
Top