Cách thanh lịch nhất để thực hiện vòng lặp là gì và dừng sau phần tử thứ hai thành phần tử cuối cùng (trong C++ 11)?Dừng trên bộ lặp phần tử cuối cùng C++
Lưu ý: Ý tôi là đối với các trình vòng lặp hai chiều; các trình vòng lặp truy cập ngẫu nhiên là một trường hợp đặc biệt tầm thường, tất nhiên, bởi vì chúng có các toán tử +
và -
.
std::list<double> x{1,2,3,4,5,6};
for (auto iter = x.begin(); iter != x.end(); ++iter) {
auto iter2 = iter;
++iter2;
if (iter2 == x.end()) break;
std::cout << *iter << std::endl;
}
Bạn có chắc chắn bạn không có nghĩa là "các trình vòng lặp chuyển tiếp" thay vì "các trình vòng lặp hai chiều" không? Trường hợp hai chiều có vẻ khá tầm thường. –
@LucTouraille 'std :: list' cung cấp cho trình vòng lặp hai chiều, vì vậy điều đó tốt với tôi-- bạn có thể hiển thị giải pháp tầm thường mà bạn đang nghĩ tới không? – user
Nếu 'while (iter! = X.end() - 1)' là tầm thường đối với bạn, thì 'while (iter! = --x.end())' cũng khá đơn giản, phải không? –