Vector vs valarray ile ilgili soru here'a sorulmuştur. Soruma özellikle C++ 11 örneğini ifade eder. "A Tour of C++" ve "The C++ Programming Language" okuyorum. Her iki kitap da Bjarne Stroustrup tarafından yazılmıştır. İlk kitapta yazar, sayısal hesaplama için std::valarray
'un tercih edilmesi gerektiğini açıklamaktadır (Bölüm 12). Fakat sonra ikinci kitapta, bölüm 29'da, yazar bir Matrix sınıfını std::vector
açısından uygular.C++ 11: sayısal hesaplama için valarray veya vektör kullanmalıyım
Ayrıca, biraz googling yaparak, performans açısından, std::vector
dinamik olarak ayrılmış "ham diziler" kadar hızlı görünüyor.
C++ 11 kapsamında, sayısal hesaplama için hangi konteyner tercih edilmelidir?
bu almak benim olacağını std::vector
(hayır sınırları denetleme verilere bir başvuru verir) operator[]
kullanarak içeriğinin hızlı erişim sağlar ve bu kadar dinamik olarak atanan dizisi üzerinde std::vector
kullanmak da güvenlidir çünkü std::vector
tercih edilmelidir. itibaren C++ 11 da :
std::vector
std::vector::data()
- Std :: vektör kullanılarak temel veri doğrudan erişim sağlar kullanılarak daha az bellek kullanmak için boyutlandırılmış olabilir
std::vector::shrink_to_fit()
olarak kütüphane kullanmayı düşünün isterseniz, Yine
v3 = sin(v2 + v1*3)
yapmak. Modern C++ dünyasında, yapmamamız gerekmedikçe std :: vektörü varsayılan olarak kullanılmalıdır. –