Equivalent de std::vector [Résolu]

Messages postés
2
Date d'inscription
mercredi 29 mars 2006
Statut
Membre
Dernière intervention
4 février 2010
- - Dernière réponse : krimog
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
- 4 févr. 2010 à 17:34
Bonjour à tous.

j'apprends tout juste le c# mais je ne trouve pas d'équivalent à std:vector du c++. J' ai bien regarder les collections de System.Collection mais aucune ne semble implementer une acces direct comme vector ( [] ).Je veux simplement pouvoir faire ca :
T t;
std::vector<T> v;
v[0]=t;

mais en c#, ou tu du moins un tableau de taille variable avec acces en O(1).
J'attends vos reponse avec impatience ,merci.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
37
3
Merci
Salut, quasiment toutes les collections séquentielles possèdent un indexeur, Liste< T >, Collection< T > ..

string s1 = "csharpfr.com";

List< string > list1 = new List< string >( );
//list1[ 0 ] = s1; // KO, Count == 0
list1.Add( s1 );
MessageBox.Show( list1[ 0 ] ); // OK, Count == 1

List< string > list2 = new List< string >( new string[ 10 ] );
list2[ 9 ] = s1; // OK, Count == 10
MessageBox.Show( list2[ 9 ] );

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 116 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Lutinore
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
37
3
Merci
Salut

Comme dit Lutinore, à peu près toutes les classes de System.Collection possèdent un indexeur (qui permet de récupérer/attribuer une valeur de cette façon : maCollection[2])

Pour voir si une classe a un indexeur, il faut aller sur MSDN, trouver ta classe, et chercher dans ses propriétés. Le prototype d'un indexeur en C# est le suivant :
public T this [
    int index
] { get; set; }

(T représentant bien sûr le type de retour)

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 116 internautes nous ont dit merci ce mois-ci

Commenter la réponse de krimog
Messages postés
2
Date d'inscription
mercredi 29 mars 2006
Statut
Membre
Dernière intervention
4 février 2010
0
Merci
Merci bien.
En effet cela fonctionne.Je cherchais dans la documentation de msdn a la rubrique methode alors que c'est une propriété , chose nouvelle pour moi venant du c/c++ .
Commenter la réponse de firnafin
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
37
0
Merci
Dans le doute, regarde carrément les champs ;)

Ceci dit, maintenant que tu le soulignes, c'est vrai que c'est étonnant que les surcharges d'opérateurs soient des méthodes et que l'indexeur (une sorte de surcharge de []) soit une propriété...

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
Commenter la réponse de krimog

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.