结构体与模板

这篇具有很好参考价值的文章主要介绍了结构体与模板。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

结构体与模板

结构体嵌套

在结构体中我们可以定义自己需要的成员及成员类型。成员类型可以是 C++ 的标准类型,也可以是另一个结构体。例如:

struct Book
{
   
    int book_id;
    string name;
    string ISBN;
};

struct Home
{
   
    int size;
    Book One;
};

特别要需要注意的是这个类型不可以是自己,否则就无法通过编译。
例如下面这个程序:

struct Book
{
   
    int book_id;
    string name;
    string ISBN;
    Book book;
};

结构体与函数

结构体与其他类型相同,可以作为函数的参数进行传递。
将结构体作为函数参数时,遵循值传递的规则。函数体内对结构体进行修改并不会影响原来变量的值。

#include <bits/stdc++.h>
using namespace std;

struct Book
{
   
    int book_id;
    string name;
};

void setBook(Book bk)
{
   
    bk.book_id = 3;
    bk.name = "World";
}

int main()
{
   
    Book s;
    s.book_id = 1;
    s.name = "Hello";
    setBook(s);
    cout << s.book_id << endl;
    cout << s.name << endl;
}

运行结果如下:

1
Hello

可以看到把结构体变量 s ​ 作为函数的参数传入,并在函数内部对传入的 s ​ 的内容做修改,是不会影响到原来 s ​ 变量的取值的。
如果希望能够在调用函数的内部,修改传入参数的值,则需要增加引用传递符号 & 。或者把函数的返回值类型设为结构体。

#include <bits/stdc++.h>
using namespace std;
struct Book
{
   
    int book_id;
    string name;
};
void setBook(Book &bk)
{
   
    bk.book_id = 3;
    bk.name = "World";
}
int main()
{
   
    Book s;
    s.book_id = 1;
    s.name = "Hello";
    setBook(s);
    cout << s.book_id << endl;
    cout << s.name << endl;
}

运行结果如下:

3
World

结构体除了可以作为函数的参数,也可以作为函数的返回值。文章来源地址https://www.toymoban.com/news/detail-642404.html

#include <bits/stdc++.h>
using namespace std;
struct Books {
   
   int Id;
   string Title;
} book;
 
void F1

到了这里,关于结构体与模板的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 算法模板(3):搜索(4):高等图论

    相关概念 强连通分量:Strongly Connected Component (SCC). 对于一个有向图顶点的子集 S S S ,如果在 S S S 内任取两个顶点 u u u 和 v v v ,都能找到一条 u u u 到 v v v 的路径,那么称 S S S 是强连通的。 如果在强连通的顶点集合 S S S 中加入其他任意顶点集合后,它都不再是强连通的,那

    2024年02月08日
    浏览(43)
  • 【算法入门&图论】【模板】拓扑排序|【模板】单源最短路2 |最小生成树

    ✅作者简介:热爱后端语言的大学生,CSDN内容合伙人 ✨精品专栏:C++面向对象 🔥系列专栏:算法百炼成神 本专栏收录的均为牛客网的算法题目,内含链表、双指针、递归、动态规划、基本数据结构等算法思想的具体运用。牛客网不仅有大量的经典算法题目,也有大厂的面

    2024年02月03日
    浏览(46)
  • 【C++算法模板】图论-拓扑排序,超详细注释带例题

    推荐视频链接:D01 拓扑排序 给定一张 有向无环图 ,排出所有顶点的一个序列 A A A 满足:对于图中的每条有向边 ( x , y ) (x,y) ( x , y ) , x x x 在 A A A 中都出现在 y y y 之前,则称 A A A 是该图的顶点的一个拓扑序 拓扑排序 可以判断有向图中是否有环,可以生成拓扑序列 对于下

    2024年04月15日
    浏览(41)
  • C语言算法笔记1:结构体、结构体数组实战讲解

    今日开始为电赛复习一些必备的算法知识,本文回顾复习结构体的概念以及一些基本操作,每个知识点都有代码实践演示,可以复制测试查看! 目录 前言——往日的困惑: 一、结构体基础知识与用途: C语言结构体是一种自定义数据类型: 结构体可以包含不同的数据类型:

    2024年02月12日
    浏览(42)
  • 【学习笔记】数据结构算法文档(类C语言)

    1.1.1 线性表的顺序存储表示 1.1.2 顺序表中基本操作的实现 1.1.2.1 初始化 1.1.2.2 取值 1.1.2.3 查找 1.1.2.4 插入 1.1.2.5 删除 1.1.2.6 计数 1.2.1 单链表的定义和表示 ★ 关于结点 1.2.2 单链表基本操作的实现 1.2.2.1 初始化 1.2.2.2 取值 1.2.2.3 查找 1.2.2.4 插入 1.2.2.5 删除 1.2.2.6 前插法创建单

    2024年02月07日
    浏览(44)
  • 最短路Dijkstra,spfa,图论二分图算法AYIT---ACM训练(模板版)

    最短路Dijkstra,spfa,图论二分图算法AYIT—ACM训练(模板版) A — Dijkstra B — spfa/Dijkstra C — 二分图 D — 二分图 E — 二分图 F — 二分图 G — Dijkstra H — Topsort Dijkstra算法基础模板题 💬 模板演示: 朴素版本Dijkstra: 💬 代码演示: 🚩 运行结果: spfa算法: 💬 代码演示: 🚩

    2024年02月10日
    浏览(49)
  • 【算法每日一练]-图论(保姆级教程篇15 )#会议(模板题) #医院设置 #虫洞(模板题) #无序字母对 #旅行计划 #最优贸易

    目录 今日知识点: 求数的重心先dfs出d[1]和cnt[i],然后从1进行dp求解所有d[i] 两两点配对的建图方式,检查是否有环 无向图欧拉路径+路径输出 topo+dp求以i为终点的游览城市数 建立分层图转化盈利问题成求最长路 会议(模板题) 医院设置  虫洞(模版题) 无序字母对  旅行

    2024年01月21日
    浏览(44)
  • 【算法每日一练]-图论(保姆级教程篇14 )#会议(模板题) #医院设置 #虫洞(模板题) #无序字母对 #旅行计划 #最优贸易

    目录 今日知识点: 求数的重心先dfs出d[1]和cnt[i],然后从1进行dp求解所有d[i] 两两点配对的建图方式,检查是否有环 无向图欧拉路径+路径输出 topo+dp求以i为终点的游览城市数 建立分层图转化盈利问题成求最长路 会议(模板题) 医院设置  虫洞(模版题) 无序字母对  旅行

    2024年02月02日
    浏览(48)
  • 二、搜索与图论6:Dijkstra 模板题+算法模板(Dijkstra求最短路 I, Dijkstra求最短路 II,1003 Emergency)

    朴素dijkstra算法 对应模板题:Dijkstra求最短路 I 时间复杂是 O(n^2+m):n 表示点数,m 表示边数 堆优化版dijkstra 对应模板题:Dijkstra求最短路 II 时间复杂度 O(mlogn):n 表示点数,m 表示边数 树是一种特殊的图 ,与图的存储方式相同。 对于无向图中的边ab,存储两条有向边a-b, b-a。

    2024年02月14日
    浏览(37)
  • 【数据结构与算法】图论及其相关算法

    线性表局限于一个直接前驱和一个直接后继的关系,树也只能有一个直接前驱也就是父节点,当我们需要表示多对多的关系时, 这里我们就用到了图。 图是一种数据结构,其中结点可以具有零个或多个相邻元素。两个结点之间的连接称为边。 结点也可以称为顶点。如图:

    2024年02月09日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包