Qt 5.0 đã giới thiệu các phương pháp lặp cbegin()
và cend()
trong các lớp chứa khác nhau như QList hoặc QMap.cbegin()/cend() so với constBegin()/constEnd()
Nhưng cũng có các phương pháp constBegin()
và constEnd()
trong các lớp đó.
Tất cả các phương pháp đó là const
và trả về kiểu STL const_iterator
.
- Do
cbegin()
/cend()
có cùng chức năng hơnconstBegin()
/constEnd()
? Đối với tôi có vẻ như vậy, nhưng không có gì được nêu trong tài liệu của QList, QMap hoặc container classes. - Có trường hợp nào người ta nên sử dụng
cbegin()
/cend()
thay vìconstBegin()
/constEnd()
hoặc ngược lại không?
Kiểm tra nguồn, Luke ... [QList] (http://code.woboq.org/qt5/qtbase/src/corelib/tools/qlist.h.html#307), [QMap] (http: //code.woboq.org/qt5/qtbase/src/corelib/tools/qmap.h.html#521), v.v. (TL; DR: chúng giống nhau) – peppe
@peppe Điểm tốt. Nhưng khi nó không được nêu trong các tài liệu mà chúng giống hệt nhau, ai đảm bảo rằng chúng sẽ vẫn giống nhau trong tương lai? –
Đó là một thay đổi hành vi sẽ phá vỡ rất nhiều mã mà nó không thể xảy ra. – peppe