Neden dizi indis yerine kullanımına kullanmak? | Netgez.com
SORU
25 EYLÃœL 2008, PERÅžEMBE


Neden dizi indis yerine kullanımına kullanmak?

Kod: aşağıdaki iki satırı

for (int i = 0; i < some_vector.size(); i  )
{
    //do stuff
}

Ve bu:

for (some_iterator = some_vector.begin(); some_iterator != some_vector.end();
    some_iterator  )
{
    //do stuff
}

İkinci yolu tercih edildiğini söylediler. Neden tam olarak bu mu?

CEVAP
25 EYLÃœL 2008, PERÅžEMBE


İlk form vektör, yalnızca etkilidir.() boyutu hızlı bir işlemdir. Bu örnek için listeler için vektörleri için, ama değil, gerçek. Ayrıca, döngü gövdesinde ne yapmayı düşünüyorsunuz? Gibi öğeleri erişmek planlıyorsanız

T elem = some_vector[i];

sonra kabı operator[](std::size_t) tanımlanmış olan varsayım yapıyorsun. Yine, bu ancak diğer kaplar için vektör, doğru değildir.

Kullanımına kullanımını konteyner bağımsızlık yakın getirmek. Rasgele erişim yeteneği veya konteyner yineleyici yeteneklerine sahip size() çalışma, sadece hızlı hakkında varsayımlar yapıyorsun.

Kodunuzu daha standart algoritmaları kullanarak geliştirmek. Ulaşmak için çalışıyoruz ne bağlı olarak, std::for_each(), std::transform() kullanma ve benzeri seçerler. Açık bir döngü yerine standart bir algoritma kullanarak yeniden icat tekerlek kaçıyorsun. Kodunuzu daha verimli (algoritma seçilir hakkı), doğru ve yeniden kullanılabilir olması muhtemeldir.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • Bennythecoder

    Bennythecode

    25 Mart 2008
  • David Tedeyev

    David Tedeye

    20 AÄžUSTOS 2011
  • Rozetked | Обзоры

    Rozetked | Ð

    5 AÄžUSTOS 2011