我制作了这个自定义类
#ifndef VEHICLE_H_
#define VEHICLE_H_
Class Vehicle {
public:
Vehicle();
Vehicle(char,char,int,int);
virtual ~Vehicle();
char getLicense_plate();
void setLicense_plate(char);
char getBrand();
void setBrand(char);
int getTime_in();
void setTime_in(int);
int getTime_out();
void setTime_out(int);
char license_plate;
char brand;
int timei;
int timeo;
};
我在main.cpp中创建了一个大小为50的Vehicle向量,但如果它们都是空的,我不知道如何检查每个值。
#inlcude<iostream>
#include<vector>
#include<algorithm>
#inlude "Vehicle.h"
using namespace std;
int main()
{
vector<Vehicle> avai_space(50);
for(int i=0;i<avai_space.size();i++)
{
//if(avai_space(i) == NULL??){}
答案 0 :(得分:1)
所有元素都不会像空指针一样空白,因为它们是按值而不是指针存储的。
该场景将对应于
之类的声明std::vector<Vehicle*>
或者,如果指针需要拥有对象
std::vector<std::unique_ptr<Vehicle>>
答案 1 :(得分:1)
vector<Vehicle> avai_space(50);
不会创建存储容量为50的空向量;它创建一个包含50个有效条目的向量,其中每个条目都使用Vehicle
类的默认构造函数进行初始化。
要创建最大存储空间为50的空矢量,请使用:
vector<Vehicle> vehicle_vec;
vehicle_vec.reserve(50);
您可以使用vehicle_vec.push_back()
将项目添加到矢量中,而不会影响存储空间。
使用条目填充向量后,现在可以使用vehicle_vec.size()
遍历此向量中的有效条目:
for (size_t i = 0 ; i < vehicle_vec.size() ; i++) {
// Use vehicle_vec[i], for e.g.
std::cout << vehicle_vec[i].brand << "\n";
}
答案 2 :(得分:1)
vector<Vehicle> avai_space(50);
创建了50个Vehicles
。它们存在于此行之后并且不为空,但是Vehicle
的默认构造函数构成它们。
如果你想在你的向量中存储Vehicles
,但还没有创建它们(我假设这是你对== NULL
的意思),只需编写vector<Vehicle> avai_space;
然后添加新的{{} 1}}以std::vector::push_back
结尾。