为什么我无法访问矢量车

why can not I access the vector cars?

本文关键字:访问 为什么      更新时间:2023-10-16
#include <iostream>
#include <vector>
using namespace std;
struct multa{
  int data;
};
struct veiculos{
  string placa;
 vector<multa*> multas;
};
int tam = 0;
vector<veiculos*> carros;
void insereVeiculos(){
    veiculos  *carrosparaadd = new veiculos;
    cout << "digite a placa do veiculo:" << endl;
    cin >> carrosparaadd->placa;
    carros.push_back(carrosparaadd);
    cout << carros[].placa;
    tam++;
   }
void inseremultas(){
   int cont = 0 ,i = 0;
   cout << "Quantas multas você quer adicionar?" << endl;
   cin >> cont;
   for(i=0;i<cont;i++){
     multa *multasparaadd = new multa;
     cout << "Digite a data da multa para add:" << endl;
     cin >> (*multasparaadd).data;
     cout << (*multasparaadd).data;
     carros[0]->multas.push_back(multasparaadd);
    }
}

为什么我无法访问矢量车?与卡罗斯[0].普拉卡?我测试了它,发现它从键盘上获得了正确的值谢谢。

你的表达

cout << carros[].placa;

缺少数组访问的索引,并且由于它是指针向量,因此您还需要取消引用访问的元素。编译的正确表达式是例如:

cout << carros[0]->placa;

如果要打印刚刚插入的元素,可以使用以下任一方法:

cout << carros.back()->placa;

或者,由于您要插入指针,只需:

cout << carrosparaadd->placa;