valarray
class look es igual a array
clase, ¿me puede explicar dónde preferiría valarray
sobre o viceversa?¿Cuál es la diferencia entre std :: valarray y std :: array
Respuesta
valarray
ya estaba en C++ 03,array
es nuevo en C++ 11valarray
es de longitud variable,array
no lo es.valarray
está diseñada para cálculos numéricos y proporciona un montón de operaciones incluyendo+
,-
,*
,cos
,sin
, etc ...array
no.valarray
tiene una interfaz para recuperar rebanadas de la matriz (matrices sub),array
no lo hace.
mientras todas las respuestas son buenas y cada una tiene algo más que yo no sabía que aceptar. así que gracias a todos ustedes !. – codekiddy
Permitidme añadir un par de enlaces sobre '' array' y array' frente a 'vECTOR' http://en.cppreference.com/w/cpp/container/array y http://stackoverflow.com/questions/15079057/arrays-vs-vectores-introducción-similitudes-y-diferencias –
valarray
es una estructura de datos dinámica, cuyo tamaño puede cambiar en el tiempo de ejecución y que realiza la asignación dinámica. array
es una estructura de datos estáticos cuyo tamaño se determina en tiempo de compilación (y también es un agregado).
No utilice valarray
, sin embargo; simplemente use un vector
en su lugar.
¿por qué es preferible el vector? – DilithiumMatrix
@zhermes: hm, tal vez [comprobar esta pregunta] (http://stackoverflow.com/questions/1602451/c-valarray-vs-vector) para algunos antecedentes. Esencialmente, los algoritmos estándar y el 'vector' te brindan todo lo que necesitas. –
Las plantillas de clase relacionadas con std::valarray<T>
están pensadas para admitir las técnicas de optimización conocidas como plantillas de expresión. No he intentado hacer esto, pero tengo entendido que la especificación no lo requiere del todo y tampoco realmente lo admite suficientemente. En general, std::valarray<T>
es una clase bastante especializada y no se usa ampliamente. Además, creo que el soporte de argumentos de la plantilla para std::valarray<T>
es un conjunto limitado (por ejemplo, los tipos incorporados numéricos).
Por otro std::array<T, n>
es una matriz de tamaño fijo de apoyo, en la medida de lo posible el tamaño mientras que se fija, la interfaz de contenedor normal. Básicamente, std::array<T>
es una versión más conveniente de usar de T[n]
.
- 1. ¿Cuál es la diferencia entre std :: merge y std :: set_union?
- 2. ¿Cuál es la diferencia entre std :: condition_variable y std :: condition_variable_any?
- 3. ¿Cuál es la diferencia entre std :: set y std :: vector?
- 4. ¿Cuál es la diferencia entre std :: string y std :: basic_string? ¿Y por qué se necesitan ambos?
- 5. ¿Cómo es el futuro de std :: valarray?
- 6. std :: vector versus std :: array en C++
- 7. ¿Cuál es la diferencia entre std :: string :: c_str y std :: string :: data?
- 8. ¿Cuál es la diferencia práctica entre std :: nth_element y std :: sort?
- 9. ¿Cuál es la diferencia entre std :: quick_exit y std :: abort y por qué se necesitó std :: quick_exit?
- 10. ¿Cuál es la diferencia entre array_merge y array + array?
- 11. Diferencia: std :: runtime_error vs std :: exception()
- 12. Diferencia entre std :: result_of y decltype
- 13. C++ 11 std :: array
- 14. Conversión entre C++ std :: vector y C array sin copiar
- 15. ¿Cuál es la diferencia entre notify_all() y notify_one() de std :: condition_variable?
- 16. std :: vector vs normal array
- 17. std :: array <char, N> std :: string
- 18. Cuál es la diferencia entre std :: multimap <key, value> y std :: map <key, std :: set <value>>
- 19. Tratar C cstyle array como std :: array
- 20. ¿Por qué es diferente el comportamiento C++ initializer_list para std :: vector y std :: array?
- 21. Estricto aliasing y std :: array vs C-style array
- 22. ¿Cuán grande es la brecha de rendimiento entre std :: sort y std :: stable_sort en la práctica?
- 23. std :: mem_fun vs std :: mem_fn
- 24. Cómo convertir CString y :: std :: string :: std :: wstring entre sí?
- 25. ¿Existe una diferencia operativa entre std :: set :: iterator y std :: set :: const_iterator?
- 26. ¿Cuál es la diferencia entre Array (1) y el nuevo Array (1) en JavaScript?
- 27. std :: this_thread :: yield() vs std :: this_thread :: sleep_for()?
- 28. ¿Cuál es la lógica detrás de std :: bind y std :: thread siempre copiando argumentos?
- 29. Diferencia entre array [n] y array []?
- 30. ¿Cuál es el propósito de std :: make_pair frente al constructor de std :: pair?
Ver http://stackoverflow.com/questions/1602451/c-valarray-vs-vector – Johnsyweb
Es 'valarray', no' vallaray'. No son la misma cosa en absoluto, probablemente no deberías usar 'valarray' ya que es tan poco pensado como para inutilizarlo. La diferencia entre 'array' y' vector' debería ser suficiente. –