vector的使用方式?

有大佬可以帮忙看看为什么这个程序运行不了结果(只是成功跳出了运行屏)😭😭🙏🙏

#include<iostream>
using namespace std;
#include<string>
#include<vector>
#include<stdlib.h>
#include <conio.h>


class information{
public:
//----------数据域------
//报名时间
        int sign_time_year;
        int sign_time_month;
        int sign_time_day;
        int sign_time_hour;
        int sign_time_minute;
        int sign_time_second;
//活动开始时间
        int act_time_year;
        int act_time_month;
        int act_time_day;
        int act_time_hour;
        int act_time_minute;
        int act_time_second;
//活动截止时间
        int off_acttime_year;
        int off_acttime_month;
        int off_acttime_day;
        int off_acttime_hour;
        int off_acttime_minute;
        int off_acttime_second;
//截止报名时间
        int  off_signtime_year;
        int  off_signtime_month;
        int  off_signtime_day;
        int  off_signtime_hour;
        int  off_signtime_minute;
        int  off_signtime_second;
        int act_number;//活动存在标志号
        string act_position[50];//活动人数
        string act_request[500];
//活动要求
    int sumofpeople;//人数上限
    int sumofservetime;//志愿服务时间

//------------函数域---------
    void print_information();
};
vector<information> message;

class Volunteer_service:public information
{//社团管理的志愿服务信息实现
public:
    int Sign_time();
    int Act_time();
    int Off_acttime();
    int Off_signtime();
    void Act_position();
    int Sumofpeople();
    int Sumofservetime();
    void Act_Request();
    //int Select_student();
    void setxinxi();
private:
    string ID;
    string Name;
    string Password;
    int xinyufen;
};
vector<Volunteer_service> people;

void information::print_information()
{
     for (int i = 0; i < message.size(); i++)
    {
     cout<<"活动序号:"<<message.at(i).act_number<<endl;
     cout<<"开始报名时间:"<<message.at(i).sign_time_year<<"年"<<message.at(i).sign_time_month<<"月"<<message.at(i).sign_time_day<<"日"
    <<message.at(i).sign_time_hour<<":"<<message.at(i).sign_time_minute<<":"<<message.at(i).sign_time_second<<endl;
     cout<<"报名截止时间:"<<message.at(i).off_signtime_year<<"年"<<message.at(i).off_signtime_month<<"月"<<message.at(i).off_signtime_day<<"日"
     <<message.at(i).off_signtime_hour<<":"<<message.at(i).off_signtime_minute<<":"<<message.at(i).off_signtime_second<<endl;
     cout<<"活动开始时间:"<<message.at(i).act_time_year<<"年"<<message.at(i).act_time_month<<"月"<<message.at(i).act_time_day<<"日"
     <<message.at(i).act_time_hour<<":"<<message.at(i).act_time_minute<<":"<<message.at(i).act_time_second<<endl;
     cout<<"活动截止时间:"<<message.at(i).off_acttime_year<<"年"<<message.at(i).off_acttime_month<<"月"<<message.at(i).off_acttime_day<<"日"
     <<message.at(i).off_acttime_hour<<":"<<message.at(i).off_acttime_minute<<":"<<message.at(i).off_acttime_second<<endl;
     cout<<"活动地点:";
     for(int j=0;j!='/';j++)
     {
    cout<<message.at(i).act_position[j];
    }
    cout<<"活动要求:";
    for(int j=0;j!='/';j++)
    {
    cout<<message.at(i).act_request[j];
    }
    cout<<"活动人数:"<<message.at(i).sumofpeople<<endl;
    cout<<"志愿服务时长:"<<message.at(i).sumofservetime<<endl;
    }
}

int  Volunteer_service::Sign_time()
{
    for (int i = 0; i < message.size(); i++)
    {
    cout<<"请设置报名时间:(年月日时分秒)"<<endl;
    cin>>message.at(i).sign_time_year;
    cin>>message.at(i).sign_time_month;
    cin>>message.at(i).sign_time_day;
    cin>>message.at(i).sign_time_hour;
    cin>>message.at(i).sign_time_minute;
    cin>>message.at(i).sign_time_second;
    }
}

int Volunteer_service::Act_time()
{
    for (int i = 0; i < message.size(); i++)
    {
    cout<<"请设置活动开始时间:(年月日时分秒)"<<endl;
    cin>>message.at(i).act_time_year;
    cin>>message.at(i).act_time_month;
    cin>>message.at(i).act_time_day;
    cin>>message.at(i).act_time_hour;
    cin>>message.at(i).act_time_minute;
    cin>>message.at(i).act_time_second;
    }
}
int Volunteer_service::Off_acttime()
{
    for (int i = 0; i < message.size(); i++)
    {
    cout<<"请设置活动截至时间:(年月日时分秒)"<<endl;
    cin>>message.at(i).off_acttime_year;
    cin>>message.at(i).off_acttime_month;
    cin>>message.at(i).off_acttime_day;
    cin>>message.at(i).off_acttime_hour;
    cin>>message.at(i).off_acttime_minute;
    cin>>message.at(i).off_acttime_second;
    }
}
int Volunteer_service::Off_signtime()
{
    for (int i = 0; i < message.size(); i++)
    {
    cout<<"请设置报名截止时间:(年月日时分秒)"<<endl;
    cin>>message.at(i).off_signtime_year;
    cin>>message.at(i).off_signtime_month;
    cin>>message.at(i).off_signtime_day;
    cin>>message.at(i).off_signtime_hour;
    cin>>message.at(i).off_signtime_minute;
    cin>>message.at(i).off_signtime_second;
    }
}
void Volunteer_service::Act_position()
{
    for (int i = 0; i < message.size(); i++)
    {
    int j=0;
    cout<<"活动地点:";
    do
    {
        j++;
        cin>>message.at(i).act_position[j];
    }while(message.at(i).act_position[j]!="/");
    }
}
int Volunteer_service::Sumofpeople()
{
    for (int i = 0; i < message.size(); i++)
    {
    cout<<"活动人数上限:"<<endl;
    cin>>message.at(i).sumofpeople;
    }
}
void Volunteer_service::Act_Request()
{
    for (int i = 0; i < message.size(); i++)
    {
    int j=0;
    cout<<"活动要求:";
    do
    {
        i++;
        cin>>message.at(i).act_request[j];
    }while(message.at(i).act_request[j]!="/");
    }
}

int Volunteer_service::Sumofservetime()
{
    for (int i = 0; i < message.size(); i++)
    {
    cout<<"志愿服务时长:";
    cin>>message.at(i).sumofservetime;
    }
}

void  Volunteer_service::setxinxi()//活动信息录入
{
    system("color f9");
    system("mode con cols=400 lines=400");
cout<<"请输入志愿活动的基本信息:"<<endl;
for (int i = 0; i < people.size(); i++)
    {
     people.at(i).Sign_time();
     people.at(i).Off_signtime();
     people.at(i).Act_time();
     people.at(i).Off_acttime();
     people.at(i).Sumofpeople();
     people.at(i).Sumofservetime();
     people.at(i).Sumofpeople();
     people.at(i).Act_position();
     people.at(i).Act_Request();
     people.at(i).print_information();
     cout<<"此信息已交由学校管理者审核"<<endl;
    }
}

int main()
{
    Volunteer_service u;
    for (int i = 0; i < people.size(); i++)
    {
        people.at(i).setxinxi();
    }
}

vector的用法跟数组不一样,你的代码中在录入数据的时候,都是for (int i = 0; i < message.size(); i++){cin>>message.at(i).sign_time_year;/**/}这种形式,此时message.size()的大小是0,不会往vector中插入数据的。

你的代码写的太乱了。

Volunteer_service类继承了information类,Volunteer_service类中定义的私有成员也没有使用。搞不懂你要干啥。

代码整理了一下,做个参考吧。

#include<iostream>
#include<string>
#include<vector>
#include<stdlib.h>
#include <conio.h>
using namespace std;
//定义时间
class DateTime
{
public:
	int year;
	int month;
	int day;
	int hour;
	int minute;
	int second;
	DateTime(){}
	DateTime(int y,int m,int d,int h,int mi,int s){year = y; month = m; day = d;hour = h; minute = mi;second = s;}
	void display(int type)
	{
		if(0 == type)
			cout << year << "年" << month << "月" << day << "日" << hour <<"时" << minute << "分" << second << "秒" << endl;
		else
			cout << year << "年" << month << "月" << day << "日" <<endl;
	}
};


class information
{
protected:
	//----------数据域------
	DateTime sig_time;  //报名时间
	DateTime act_time;  //活动开始时间
	DateTime off_acttime;  //活动截止时间
	DateTime off_signtime; //截止报名时间

	int act_number;         //活动存在标志号
	string act_position[50];//活动人数
	string act_request[500];//活动要求

	int nmbpos;      //活动地点数
	int nmbrequest;  //活动要求条数

	//活动要求
	int sumofpeople;    //人数上限
	int sumofservetime; //志愿服务时间

	//------------函数域---------
public:
	int Sign_time();
	int Act_time();
	int Off_acttime();
	int Off_signtime();
	void Act_position();
	int Sumofpeople();
	int Sumofservetime();
	void Act_Request();
	void print_information();
};

void information::print_information()
{

	cout<<"活动序号:"<<act_number<<endl;
	cout<<"开始报名时间:";
	sig_time.display(1);

	cout<<"报名截止时间:";
	off_signtime.display(1);

	cout<<"活动开始时间:";
	act_time.display(1);

	cout<<"活动截止时间:";
	off_acttime.display(1);

	cout<<"活动地点:";
	for(int j=0;j < nmbpos;j++)  
	{
		cout<<act_position[j];
	}
	cout<<"活动要求:";
	for(int j=0;j < nmbrequest;j++)
	{
		cout<<act_request[j];
	}
	cout<<"活动人数上限:"<<sumofpeople<<endl;
	cout<<"志愿服务时长:"<<sumofservetime<<endl;
}

int  information::Sign_time()
{
	cout<<"请设置报名时间:(年月日时分秒)"<<endl;
	cin>>sig_time.year;
	cin>>sig_time.month;
	cin>>sig_time.day;
	cin>>sig_time.hour;
	cin>>sig_time.minute;
	cin>>sig_time.second;
	return 0;
}

int information::Act_time()
{
	cout<<"请设置活动开始时间:(年月日时分秒)"<<endl;
	cin>>act_time.year;
	cin>>act_time.month;
	cin>>act_time.day;
	cin>>act_time.hour;
	cin>>act_time.minute;
	cin>>act_time.second;
	return 0;
}
int information::Off_acttime()
{
	cout<<"请设置活动截至时间:(年月日时分秒)"<<endl;
	cin>>off_acttime.year;
	cin>>off_acttime.month;
	cin>>off_acttime.day;
	cin>>off_acttime.hour;
	cin>>off_acttime.minute;
	cin>>off_acttime.second;

	return 0;
}
int information::Off_signtime()
{
	cout<<"请设置报名截止时间:(年月日时分秒)"<<endl;
	cin>>off_signtime.year;
	cin>>off_signtime.month;
	cin>>off_signtime.day;
	cin>>off_signtime.hour;
	cin>>off_signtime.minute;
	cin>>off_signtime.second;

	return 0;
}
void information::Act_position()
{
	cout<<"活动地点:";
	nmbpos = 0;
	do
	{
		cin>>act_position[nmbpos];
		nmbpos++;
	}while(act_position[nmbpos-1]!="/");

}
int information::Sumofpeople()
{

	cout<<"活动人数上限:"<<endl;
	cin>>sumofpeople;

	return 0;
}
void information::Act_Request()
{
	cout<<"活动要求:";
	nmbrequest = 0;
	do
	{
		cin>>act_request[nmbrequest];
		nmbrequest++;
	}while(act_request[nmbrequest-1]!="/");
}

int information::Sumofservetime()
{
	cout<<"志愿服务时长:";
	cin>>sumofservetime;
	return 0;
}
class Volunteer_service:public information
{//社团管理的志愿服务信息实现
public:
	void setxinxi();
private:
	string ID;
	string Name;
	string Password;
	int xinyufen;
};
void Volunteer_service::setxinxi()//活动信息录入
{
	system("color f9");
	system("mode con cols=400 lines=400");
	cout<<"请输入志愿活动的基本信息:"<<endl;

	Sign_time();
	Off_signtime();
	Act_time();
	Off_acttime();
	Sumofpeople();
	Sumofservetime();
	Sumofpeople();
	Act_position();
	Act_Request();
	print_information();
	cout<<"此信息已交由学校管理者审核"<<endl;

}

vector<Volunteer_service> people;  //既然是志愿服务类,为啥起个名字叫people。。
int main()
{
	int nmb = 0;
	cout << "请输入志愿服务数:";
	cin >> nmb;
	for (int i = 0; i < nmb; i++)
	{
		Volunteer_service u;
		u.setxinxi();
		people.push_back(u);
	}
}

 

回复即采纳!孩子急求🙏🙏

首先,解决编译错误。

Volunteer_service::Act_time” : 
Volunteer_service::Sign_time” : 
Volunteer_service::Off_signtime” : 
Volunteer_service::Sumofpeople” : 
Volunteer_service::Off_acttime” : 
Volunteer_service::Sumofservetime” : 
还有main函数
//必须返回一个值

其次,编译了之后

int main()
{
    Volunteer_service u;
    for (int i = 0; i < people.size(); i++)
    {
        people.at(i).setxinxi();
    }
}

此处的Volunteer_service u没有调用任何函数
此时people.size()=0,因为vector并没有加入数据。