Pointer un charactère dans un tableau

Programath Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'essai de créer un tableau où lors de mon premier choix je veux remplir la première case de ce tableau avec la lettre A. Pourquoi ici ça ne fonctionne pas ? Merci d'avance

#include <iostream>
#include <vector>
#include <cmath>
#include <string>
#include <cstdlib>
#include "Voyage.h"

using namespace std;

int main()
{
    vector<string> Nom_villes={"A","B","C","D"};
    int T[8];

     T[0] = *Nom_villes(0);
      cout <<  *T[0] << endl;
//ect...


Configuration: Windows / Chrome 96.0.4664.93
A voir également:

1 réponse

Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   101
 
Salut,

Tu veux pointer. Les objets qui peuvent pointer s'appellent des pointeurs, et il n'y en a aucun dans ton code.

Ta ligne
T[0] = *Nom_villes(0);
est une accumulation de non sens. Tu utilises un objet comme si c'était une fonction, tu déréférences le résultat comme si c'était un pointeur et tu veux le stocker dans un entier alors il y a surtout des strings!
Tu sembles vouloir que T soit un tableau de pointeur sur des strings, déclare le comme tel, ça marchera mieux.
    std::vector<std::string>  Nom_villes{"A","B","C","D"};
    std::string*  T[8]; // T est un tableau de 8 pointeurs sur des strings

     T[0] = &Nom_villes[0];  // T[0] prend l'adresse de la première ville.
     std::cout <<  *T[0] << std::endl;
Maintenant pourquoi vouloir pointer ? En C++ on doit éviter les pointeurs, et en plus il y a un gros risque à vouloir pointer des données qui sont dans un
std::vector<>
(un
std::vector<>
ça passe son temps à réorganiser ses éléments.)
0