28 Mayıs 2017 Pazar

std::next

Giriş
Şu satırı dahil ederiz.
#include <iterator>
Bu metod std::prev() çağrısının tersini yapar. Yani ilerletilmiş yeni bir iterator döner.
std::advance() çağrısından farklı olarak, girdi iterator'ü değiştirmez.

C++11 ile geldi. Bir iterator'ü n defa ilerletmek için kullanılır. Yeni bir iterator döndüğü için girdi olarak kullanılan iterator değişmez. next() çağrısını kullanırken container'ın end() iteratorünü geçmediğimizden emin olmak gerekir. std::next () bu tür hataları yakalamaz.

Örnek
Şöyle yaparız.
std::list<int> v{ 3, 1, 4 };

auto it = v.begin();

auto nx = std::next(it, 2);

std::cout << *it << ' ' << *nx << '\n';
Çıktı olarak şunu alırz.
3 4
Örnek
Şöyle yaparız.
auto it = my_map.begin();
auto it4 = std::next(it, 4); // returns a new iterator

Hiç yorum yok:

Yorum Gönder