1. Welcome to Tacoma World!

    You are currently viewing as a guest! To get full-access, you need to register for a FREE account.

    As a registered member, you’ll be able to:
    • Participate in all Tacoma discussion topics
    • Communicate privately with other Tacoma owners from around the world
    • Post your own photos in our Members Gallery
    • Access all special features of the site

Creating a C++ Vector

Discussion in 'Technology' started by tarheelfan_08, Mar 27, 2010.

  1. Mar 27, 2010 at 12:40 PM
    #1
    tarheelfan_08

    tarheelfan_08 [OP] Carolina Alliance

    Joined:
    Jan 4, 2008
    Member:
    #4098
    Messages:
    2,944
    Gender:
    Male
    First Name:
    Justin
    North Carolina
    Vehicle:
    2010 White 4x4 Double Cab Tacoma Short Bed
    Chrome Grill, Chrome accessories(door handles and mirror covers), LEER Super White Cover, Mirrors with Turn Signals, Window Vent Visors, Step Rails, WeatherTech Digital Floor Mats, Mini Maglight Holder, Chrome Bull Bar
    Hey guys, I have been trying to do some stuff outside of my class to learn a bit more and I have come across something called a vector. And I read online that its similar to an array! But I am not sure how to do this. I have been able to find ways to convert and array of int's to a vector and how to convert an array of strings to a vector but nothing on how to convert an array of strings and ints to a vector. Here is the current code I have, you may have seen it before in my previous post just because I decided to use some code I had before that previously worked!!

    class
    Code:
    #include <iostream>
    #include <fstream>
    #include <iomanip>
    #include <functional>
    #include <algorithm>
    #include <string>
    #include <cstdlib>
    #include <sstream>
    #include <vector>  // this allows user to create a vector
    using namespace std;
    
    //Vehicle Class
    class Car
    {
    protected:
        string make;  //make
        string model; // model
        string color;  // color
        int    year;  // year
        int mileage;  // miles on car
    
    public:
            //Constructor that will set information for a new car
        void New_vehicle (string a, string b, string c, int d, int e) 
        {make = a; model = b; color = c; year = d; mileage = e;}
        
        Car(); //Default constructor
        Car(string, string, string, int, int);
        //mutator and accessor functions
        void setMake(string);
        void setModel(string);
        void setColor(string);
        void setYear(int);
        void setMileage(int);
    
        string getMake();
        string getModel();
        string getColor();
        int getYear();
        int getMileage();
    
        //Check mileage to see if valid
        void valid_mileage(int);
        void car_details();
        string string_car_details();
    };
    
    //Sets to default values
    Car::Car() {
        make = " ";
        model = " ";
        color = " ";
        year = 0;
        mileage = 0;
    }
        // My Vehicle set up(Make, model, color, year, type,bedsize, bike, mileage)
    Car::Car(string make, string model, string color, int year, int mileage) {
        Car::make =  make;
        Car::model = model;
        Car::color = color;
        Car::year = year;
        valid_mileage(mileage);
    }
    
    void Car::setMake(string make) {
        Car::make = make;
    }
    
    void Car::setModel(string model) {
        Car::model = model;
    }
    
    void Car::setColor(string color) {
        Car::color = color;
    }
    
    void Car::setYear(int year) {
        Car::year = year;
    }
    
    void Car::setMileage(int mileage) {
        valid_mileage(mileage);
    }
    
    
    string Car::getMake() {
        return make;
    }
    string Car::getModel() {
        return model;
    }
    string Car::getColor() {
        return color;
    }
    int Car::getYear() {
        return year;
    }
    int Car::getMileage() {
        return mileage;
    }
    
    
    void Car::valid_mileage(int mileage) {
        if (mileage>=0)
            Car::mileage=mileage;
        else {
            Car::mileage=0;
            cout << "WARNING! You have entered invalid mileage!\n";
        }
        }
    
        void Car::car_details() {
            cout << "The current car is a " << year << ' ' << color << ' '
                << make << ' ' << model << " with " << mileage << " miles.\n\n";
        }
    
    
    
        string Car::string_car_details() {
            stringstream buf;
            buf << "The current car is a " << year << ' ' << color << ' '
            << make << ' ' << model << " with " << mileage << " miles.\n\n";
            return buf.str();
        }
    
    
    
    CPP File

    Code:
    #include "CarClass.h"
    using namespace std;
    
    int main() {
        
        const int SIZE = 9;
                
        //Array of 9 cars
        Car Car_array[SIZE] = { Car("Porsche", "911", "Silver", 2005, 18990), 
                                Car("Ford", "Mustang", "Red", 2007, 49842),
                                Car("Chevrolet", "Beretta", "Black", 1989, 90332),
                                Car("Ford", "Focus", "White", 2008, 150),
                                Car("Voltzwagon", "Jetta", "Black", 2006, 28002),
                                Car("Rolls Royce", "Ghost", "Silver", 2005, 10000),
                                Car("Mazda", "626", "Blue", 2002, 84754),
                                Car("Toyota", "Camry", "Red", 2004, 50332),
                                Car("Bugatti", "Veyron 16.4", "White", 2010, 5)};
    
    
    
        return 0;
    }
    
     
  2. Mar 27, 2010 at 9:47 PM
    #2
    tarheelfan_08

    tarheelfan_08 [OP] Carolina Alliance

    Joined:
    Jan 4, 2008
    Member:
    #4098
    Messages:
    2,944
    Gender:
    Male
    First Name:
    Justin
    North Carolina
    Vehicle:
    2010 White 4x4 Double Cab Tacoma Short Bed
    Chrome Grill, Chrome accessories(door handles and mirror covers), LEER Super White Cover, Mirrors with Turn Signals, Window Vent Visors, Step Rails, WeatherTech Digital Floor Mats, Mini Maglight Holder, Chrome Bull Bar
    I ran my code and everything looks perfect on it, but it keeps giving me errors!

    class
    Code:
    #include <iostream>
    #include <fstream>
    #include <iomanip>
    #include <functional>
    #include <algorithm>
    #include <string>
    #include <cstdlib>
    #include <sstream>
    
    
    class Car
    {
    protected:
        string make;  //make
        string model; // model
        string color;  // color
        int    year;  // year
        int mileage;  // miles on car
    
    public:
            //Constructor that will set information for a new car
        void New_vehicle (string a, string b, string c, int d, int e) 
        {make = a; model = b; color = c; year = d; mileage = e;}
        
        Car(); //Default constructor
        Car(string, string, string, int, int);
        //mutator and accessor functions
        void setMake(string);
        void setModel(string);
        void setColor(string);
        void setYear(int);
        void setMileage(int);
    
        string getMake();
        string getModel();
        string getColor();
        int getYear();
        int getMileage();
    
        //Check mileage to see if valid
        void valid_mileage(int);
        void car_details();
        string string_car_details();
    };
    
    //Sets to default values
    Car::Car() {
        make = " ";
        model = " ";
        color = " ";
        year = 0;
        mileage = 0;
    }
        // My Vehicle set up(Make, model, color, year, mileage)
    Car::Car(string make, string model, string color, int year, int mileage) {
        Car::make =  make;
        Car::model = model;
        Car::color = color;
        Car::year = year;
        valid_mileage(mileage);
    }
    
    void Car::setMake(string make) {
        Car::make = make;
    }
    
    void Car::setModel(string model) {
        Car::model = model;
    }
    
    void Car::setColor(string color) {
        Car::color = color;
    }
    
    void Car::setYear(int year) {
        Car::year = year;
    }
    
    void Car::setMileage(int mileage) {
        valid_mileage(mileage);
    }
    
    
    string Car::getMake() {
        return make;
    }
    string Car::getModel() {
        return model;
    }
    string Car::getColor() {
        return color;
    }
    int Car::getYear() {
        return year;
    }
    int Car::getMileage() {
        return mileage;
    }
    
    
    void Car::valid_mileage(int mileage) {
        if (mileage>=0)
            Car::mileage=mileage;
        else {
            Car::mileage=0;
            cout << "WARNING! You have entered invalid mileage!\n";
        }
        }
    
        void Car::car_details() {
            cout << "The current car is a " << year << ' ' << color << ' '
                << make << ' ' << model << " with " << mileage << " miles.\n\n";
        }
    
    
    
        string Car::string_car_details() {
            stringstream buf;
            buf << "The current car is a " << year << ' ' << color << ' '
            << make << ' ' << model << " with " << mileage << " miles.\n\n";
            return buf.str();
        }
    
    
    
    CPP file
    Code:
    #include "CarClass.h"
    #include <vector>  // this allows user to create a vector
    
    using namespace std;
    
    int main() {
        
        const int SIZE = 6;
                
        //Array of 6 cars
        Car Car_array[SIZE] = { Car("Porsche", "911", "Silver", 2005, 45000), 
                                Car("Ford", "Mustang", "Red", 2007, 12600),
                                Car("Voltzwagon", "Jetta", "Black", 2006, 20218),
                                Car("Jeep", "Cherokee", "White", 2000, 98322),
                                Car("Nisson", "Sentra", "Red", 2002, 76046),
                                Car("Voltzwagon", "Beetle", "Black", 2005, 28031)};
    
            // Declare a vector capable of storing classes
        // In your case, it will hold classes of type Car
        std::vector<Car> CarVector;
        // Assign individual objects of Car from Car_array,
        // to your vector
        for (int i = 0; i < SIZE; i++)
            CarVector.push_back(Car_array[i]);
    
        for (int i = 0; i < SIZE; i++)
            // Treat CarVector[i] as Car_array[i] here. Since CarVector[i]
            // is actually a class (of type Car), you can use every public
            // member functions/variables from Car class
            std::cout << CarVector[i].getMake() << std::endl;
            std::cout << CarVector[i].getModel() << std::endl; 
            std::cout << CarVector[i].getColor() << std::endl; 
            std::cout << CarVector[i].getYear() << std::endl; 
            std::cout << CarVector[i].getMileage() << std::endl;
    
        for (int i = 0; i < SIZE; i++)
        CarVector[i].car_details();
    
    
        return 0;
    }
    
    ERRORS:

    1>------ Build started: Project: vector, Configuration: Debug Win32 ------
    1> Car.cpp
    1>\vector\car.cpp(11): error C2661: 'Car::Car' : no overloaded function takes 5 arguments
    1>\vector\car.cpp(12): error C2661: 'Car::Car' : no overloaded function takes 5 arguments
    1>\vector\car.cpp(13): error C2661: 'Car::Car' : no overloaded function takes 5 arguments
    1>\vector\car.cpp(14): error C2661: 'Car::Car' : no overloaded function takes 5 arguments
    1>\vector\car.cpp(15): error C2661: 'Car::Car' : no overloaded function takes 5 arguments
    1>\vector\car.cpp(16): error C2661: 'Car::Car' : no overloaded function takes 5 arguments
    1>\vector\car.cpp(31): error C2065: 'i' : undeclared identifier
    1>\vector\car.cpp(31): error C2228: left of '.getModel' must have class/struct/union
    1>\vector\car.cpp(32): error C2065: 'i' : undeclared identifier
    1>\vector\car.cpp(32): error C2228: left of '.getColor' must have class/struct/union
    1>\vector\car.cpp(33): error C2065: 'i' : undeclared identifier
    1>\vector\car.cpp(33): error C2228: left of '.getYear' must have class/struct/union
    1>\vector\car.cpp(34): error C2065: 'i' : undeclared identifier
    1>\vector\car.cpp(34): error C2228: left of '.getMileage' must have class/struct/union
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
     

Products Discussed in

To Top