OVH Cloud OVH Cloud

[syntaxe] pointeur sur vecteur

3 réponses
Avatar
Adrien
Bonjour,

J'ai un petit souci au niveau de la syntaxe pour accéder à une donnée
d'un type struct:

Je m'explique:
Soit la structure

struct Point
{
public:
std::vector <std::string> * names ;
}

et j'aimerais accéder depuis une autre fonction (main() on va dire) au 6e
element de names.

j'ai essayé:
Point point;
...
std::string toto = point.(*names)[6] ;

et j'obtiens un error: `names' undeclared (first use this function)
(avec gcc 3.3.5)

Il y a-t-il une façon d'accéder à (*names)[6] en une ligne de code ?

Merci d'avance.
Adrien

3 réponses

Avatar
Jean-Marc Bourguet
Adrien writes:

j'ai essayé:
Point point;
...
std::string toto = point.(*names)[6] ;

Il y a-t-il une façon d'accéder à (*names)[6] en une ligne de code ?


std::string toto = (*point.names)[6];

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org

Avatar
Adrien
Jean-Marc Bourguet wrote:

std::string toto = (*point.names)[6];

A+



Merci !

Avatar
kanze
Jean-Marc Bourguet wrote:
Adrien writes:

j'ai essayé:
Point point;
...
std::string toto = point.(*names)[6] ;

Il y a-t-il une façon d'accéder à (*names)[6] en une ligne de cod e ?


std::string toto = (*point.names)[6];


Ceci dit, je me poserais bien la question : pourquoi un pointeur
à vector, et non un vector tout court. (À part dans les objets
fonctionnels pour la STL, je ne vois pas trop d'intérêt.)

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34