10.1 图的定义和相关术语
图的存储
1.邻接矩阵:
2.邻接表:
struct node
{
int v,w;
node(int _v, int _w):v{_v},w{_w} {} //构造函数
}
构造函数:
#include<iostream>
using namespace std;
struct studentInfo
{
int id;
char gender;
/*
studentInfo(int _id, char _gender) //默认的
{
//赋值
id=_id;
gender=_gender;
}*/
//构造函数可以简化为1行
studentInfo(int _id, char _gender):id(_id),gender(_gender) {}
};
int main()
{
studentInfo a=studentInfo(22,'m');
cout << a.id << " "<< a.gender;
}
自己定义构造函数后不能用不经初始化就定义结构体变量、
#include<iostream>
using namespace std;
struct studentInfo
{
int id;
char gender;
/*
studentInfo(int _id, char _gender) //默认的
{
//赋值
id=_id;
gender=_gender;
}*/
//构造函数可以简化为1行
studentInfo(int _id, char _gender):id(_id),gender(_gender) {}
};
int main()
{
studentInfo x;
}
既能不用初始化定义,又能享受初始化的便捷、
#include<iostream>
using namespace std;
struct studentInfo
{
int id;
char gender;
studentInfo() {} //用以不初始化就定义结构体变量
studentInfo(char _gender) //默认的
{
gender=_gender;
}
//同时初始化id和gender
studentInfo(int _id, char _gender)
{
id=_id;
gender=_gender;
}
};
实例:
#include<iostream>
using namespace std;
struct Point
{
int x,y;
Point(){}; //用以不经初始化定义pt[10]
Point(int _x, int _y): x(_x),y(_y) {} //用以提供x和y的初始化
}pt[10];
int main()
{
int num=10;
for(int i=1; i<=3; i++)
for(int j=1; j<=3; j++)
{
pt[num++]=Point(i,j);
}
for(int i=0; i<num; i++)
cout << pt[i].x << " " << pt[i].y << " " << endl;
}