如何显示向量中的所有元素

时间:2019-12-02 02:14:20

标签: c++ vector push-back

当我尝试显示矢量中的所有元素时,它仅显示经销商的名称和经销商的数量,但汽车数量却在缺失!那么如何完整显示整个矢量?

我在Main中声明一个向量,并将其传递给readIn和display函数。 还是push_back出问题了?

但是当我使用调试器时 enter image description here

结果假设如下:

John Elway Dodge    123    2
Tesla Cherry Creek    234    1

但是现在这样:

John Elway Dodge    123
Tesla Cherry Creek    234

由于某些原因缺少“ 2”和“ 1”。 这是我的代码。谢谢你。

#include <fstream>
#include <iostream>
#include <vector>
#include <string>
using namespace std;
  class Dealer
{
private:
    string dealerName;
    int dealerNumber;
    int numberOfCars;

public:

    Dealer();
    Dealer(string _dealerName, int _dealerNumber, int _numberOfCars);

    void readIn(vector <Dealer> &tempDealerOne);
};

void display(vector <Dealer> &tempDealerOne);
int main() 
{
    vector <Dealer> dealerOne;
    Dealer dealer1;
    dealer1.readIn(dealerOne);
    display(dealerOne);
}

// function to read in data
void Dealer::readIn (vector <Dealer> &tempDealerOne)
 {
    const int size = 23;
    ifstream infile;
    infile.open("in.txt");
    string tempName[size];
    int tempDealerNum[size],tempCarNum[size];
    Dealer temp1;
    for(int i = 0; i < size; i++)
    {
        getline(infile,tempName[i]);
        if(i == 0)
        {
            infile >> tempDealerNum[i];
            infile >> tempCarNum[i];
            temp1.dealerName = tempName[i];
            temp1.dealerNumber = tempDealerNum[i];
            // this 
            temp1.numberOfCars = tempCarNum[i];
            // assign the data to vector
            tempDealerOne.push_back(temp1);
        }
        if(i == 14)
        {
            infile >> tempDealerNum[i];
            infile >> tempCarNum[i];
            temp1.dealerName = tempName[i];
            temp1.dealerNumber = tempDealerNum[i];
            temp1.numberOfCars = tempCarNum[i];
            // assign the data to vector
            tempDealerOne.push_back(temp1);
        }

    }
    // read in data store in vector
    // then pass it to Dealer class
     infile.close();
 }

 void display(vector <Dealer> &tempDealerOne)
{
    // what is the problem
    for(int i = 0; i < tempDealerOne.size(); i++)
    cout << tempDealerOne[0]<< "\n";
}

这是文本文件

John Elway Dodge
123
2
*****
*****
*****
*****
*****
*****
*****
*****
*****
*****


Tesla Cherry Creek
234
1
*****
*****
*****
*****
*****

0 个答案:

没有答案