我有一个类有一个字符串向量作为一个变量和一个构造函数,它需要输入来设置此向量的大小。唯一的问题是,矢量中的元素没有设置默认值。这里有什么问题?试图调整大小和分配,但每次只是空白结束。矢量调整大小/分配不添加默认值
类:
#include <iostream>
#include <vector>
#include <string>
using namespace std;
class Lab
{
private:
vector<string> station;
int id;
public:
Lab()
{
station[0] = "Empty";
id = 0;
};
Lab(int ID, int size)
{
station.assign(size, "Empty");
id = ID;
};
Lab(const Lab& labcpy)
{
station.resize(labcpy.station.size());
id = labcpy.id;
};
主要在矢量的大小设置:
#include <fstream>
#include "lab.h"
using namespace std;
int main(int argc, char* argv[])
{
ifstream labnumber_file(argv[1]);
vector<Lab> lab_v;
int labnum;
int usernum;
while(!labnumber_file.eof())
{
labnumber_file >> labnum;
labnumber_file >> usernum;
lab_v.push_back(Lab(labnum, usernum));
}
您是否为Lab实现了赋值运算符? – mathematician1975
为什么你不使用operator =? – hamed
你的默认构造函数是越野车。 “station”应该初始化为首先接受1个元素。 – jxh