¿C++ tiene algo así como List<>
en C#? Algo como List<string>
para almacenar una matriz de cadenas.¿Tiene C++ algo así como la lista <string> en C#?
Respuesta
La respuesta es en realidad
std::vector<std::string>
std::list
es una lista enlazada, no como un conjunto List<T>
clase C# 's.
E.g.
#include <iostream> // iostream is for cout and endl; not necessary just to use vector or string
#include <vector>
#include <string>
using namespace std;
int main()
{
vector<string> list;
list.push_back("foo");
list.push_back("bar");
for(vector<string>::const_iterator it = list.begin(); it != list.end(); ++it)
cout << *it << endl;
return 0;
}
La clase std::list
es en realidad equivalente a LinkedList<T>
clase C# 's.
vector no está en vs, ¿qué encabezado debo usar? – Ata
@Ata: '#include
Necesita '#include
Una lista en .NET no es una lista vinculada. La estructura de datos que está buscando es una matriz redimensionable.
std::vector<std::string> list;
C++ tiene std::vector
clase de plantilla que corresponde a C# 's List
. También tiene la plantilla std::list
que corresponde a C# SingleLinkedList
.
Uno debe estar preparado que en C++ vector
y list
llaman el constructor de la copia del artículo. Por lo tanto, para cada cadena que tenga una copia se creará.
lo tanto, si usted es limitado en la memoria o si desea almacenar las mismas cadenas en varias colecciones, es mejor utilizar std::vector<std::string*>
o std::vector<char*>
en lugar de std::vector<string>
.
'std :: list' es una lista doblemente enlazada, no una lista individualmente enlazada. – Xeo
Claro, pero BCL no tiene una lista de doble enlace y STL no tiene un enlace único. Lo que quise decir es que las clases existentes son similares en términos de tiempo de inserción/eliminación garantizado. Gracias por la corrección. –
No es aconsejable tener un contenedor de punteros ya que esto no es inherentemente una excepción. En la mayoría de las circunstancias, tal cosa no es necesaria de todos modos, y donde tal cosa podría ser necesaria, casi siempre hay mejores soluciones. –
- 1. Algo así como imprimir END << END; en C++?
- 2. ¿Python tiene algo así como la palabra clave de C++?
- 3. ¿Hay algo así como var_dump de PHP en c/C++?
- 4. ¿Tiene Lisp algo así como la función takeWhile de Haskell?
- 5. ¿El estándar C++ 11 proporciona algo así como boost :: any?
- 6. simplificar C++ código sencillo - algo así como pitones cualquier
- 7. ¿Hay algo así como Lista <String, Int32, Int32> (lista genérica multidimensional)
- 8. ¿Hay algo así como find_if en Java?
- 9. ¿Hay algo así como una lista genérica en Cocoa/Objective-C?
- 10. ¿Tiene Python algo así como clases internas anónimas de Java?
- 11. ¿Scala/java tiene algo así como StringIO de python?
- 12. ¿Tiene MongoDB algo así como Heidisql o phpmyadmin?
- 13. ¿Tiene Perl algo así como Java/PHP Docs?
- 14. Algo así como Apache Zookeeper sin Java?
- 15. ReSharper (o algo así) para Visual C++?
- 16. ¿Es posible definir algo así como 'between' en la sentencia if-else en C#?
- 17. ¿Hay algo como instanceOf (clase <?> c) en Java?
- 18. Algo así como boost :: multi_index para Python
- 19. ¿Hay algo así como "global ::" para VB.NET?
- 20. ¿Hay algo así como indicadores en Lua?
- 21. algo así como la cita triple de una pitón en F # (o C#)?
- 22. ¿Hay algo así como sesión en la aplicación de Windows?
- 23. ¿Algo así como la directiva #warning para Java?
- 24. ¿Hay algo así como un bool nulo en vb.net
- 25. ¿Hay algo así como una clase interna en Java?
- 26. ¿Hay algo así como un modelo funcional?
- 27. ¿Existe algo así como XML 2.0?
- 28. Algo así como Tryparse de Convert.FromBase64String
- 29. ¿Hay algo así como WMI para Linux?
- 30. ¿Hay algo así como Codecademy para Java
Tenga en cuenta que los "genéricos" se conocen generalmente como "plantillas" en C++. La biblioteca de plantillas estándar también proporciona varios contenedores además de listas, si alguna vez los necesita. –
@Jeff: No. Su 'std :: list'. – Nawaz
aunque hay 'std :: list' es probable que desee usar 'std :: vector', o si es estático' std :: array' –