为什么我不能访问矢量车?

时间:2018-04-11 01:03:06

标签: c++

#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);
    }
}

为什么我不能访问矢量车? 与carros [0] .placa?我测试了它,发现它从键盘上获得了正确的值 感谢。

1 个答案:

答案 0 :(得分:1)

你的表达

cout << carros[].placa;

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

cout << carros[0]->placa;

如果要打印刚刚插入的元素,可以使用:

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

或者,因为您要插入指针,只需:

cout << carrosparaadd->placa;