2012-02-15 33 views
7

birçok STL kaplarda görünür front() ve begin() fonksiyonları arasındaki fark nedir?önünde arasındaki fark() ve başlamak()

+4

'ön() '*'), (başlangıç' aynıdır. – ildjarn

+0

Neden bu durum reddedildi: S? Bu geçerli bir soru, ah evet. –

+1

İndirme düğmesine "bu soru herhangi bir araştırma çabası göstermiyor" diyor - oldukça uygulanabilir sesler. – ildjarn

cevap

12

begin(), koleksiyonda yineleme yapmak için kullanılabilecek bir yineleyici döndürürken, front() yalnızca koleksiyonun ilk öğesine bir başvuru döndürür.

+5

+1 Sadece işleri daha açık hale getirmek için (veya belki de karmaşık): '& c.front() == & * c.begin()', en az bir öğeye sahip olan herhangi bir kapsayıcı için. * Adresinin * karşılaştırılması, ifadelerin aynı * değerler * olmadığını göstermek için kullanılır, ancak * nesneler * (yani "c.front()" ifadesi, aynı nesneye yapılan bir referansı verir. yineleyici '* c.begin()') başlar. –

2

front() buna bir yineleyici döndürür begin() birinci elemanın, bir başvuru verir. Boş bir kabın üzerine front çağırmamalıdır ama yineleyici o begin döner KQUEUE yok sürece begin aramaya Tamam

Not.

+4

'begin()' ayrıca ilk öğe yoksa çalışır. –

0

front üye, bir listenin veya vektörün ilk üyesine bir başvuru döndürür. begin işlevi, bir listenin, haritanın veya vektörün ilk üyesine başlatılan bir yineleyici (daha çok bir işaretçi gibi) döndürür. http://www.cplusplus.com/reference/stl/vector/begin/ itibaren

1

(kelimenin tam anlamıyla "vektör :: başlayacak" için ilk google sonuç): İlk öğeye bir başvuru döndürür üyesi vector::front, aksine, bu fonksiyon rastgele erişim yineleyici döndürür

Bildirimi.