Astruct可用于捆绑多个返回值:
struct foo_return_type { int add; int sub; int mul; int div; }; foo_return_type foo(int a, int b) { return {a + b, a - b, a * b, a / b}; } auto calc = foo(5, 12);
代替分配给各个字段,可以使用构造函数来简化返回值的构造:
struct foo_return_type { int add; int sub; int mul; int div; foo_return_type(int add, int sub, int mul, int div) : add(add), sub(sub), mul(mul), div(div) {} }; foo_return_type foo(int a, int b) { return foo_return_type(a + b, a - b, a * b, a / b); } foo_return_type calc = foo(5, 12);
该函数返回的单个结果foo()可以通过访问的成员变量来检索struct calc:
std::cout <<calc.add<< ' ' <<calc.sub<< ' ' <<calc.mul<< ' ' <<calc.div<< '\n';
输出:
17 -7 60 0
注意:当使用时struct,返回的值将组合在一个html" target="_blank">对象中,并且可以使用有意义的名称进行访问。这也有助于减少在返回值范围内创建的无关变量的数量。
为了解压缩struct从函数返回的数据,可以使用结构化绑定。这会将外参数与内参数放在一个均匀的基础上:
int a=5, b=12; auto[add, sub, mul, div] = foo(a, b); std::cout << add << ' ' << sub << ' ' << mul << ' ' << div << '\n';
此代码的输出与上面的输出相同。在struct仍然使用从函数返回值。这使您可以单独处理字段。
问题内容: 我必须编写一个Java程序,该程序将接收来自网络的消息并将其内容显示给用户。问题是我收到的消息只是C结构的二进制转储。此外,有些消息来自小端机器,有些消息来自大端机器,而没有将字段转换为网络字节顺序。我拥有的一种方法是使用JNI并将c结构转换为一些XML字符串,然后将该XML字符串反序列化为Java Object。这是一项艰巨的工作,因为大约有122个不同的结构,每个结构都包含20多个
问题内容: 简单地说,我有一个存储应用程序常量的结构,如下所示: 例如,可以通过调用在Swift代码中使用这些常量。但是在我的代码中,它还包含一些Objective- C类。所以我的问题是如何在Objective-C代码中使用这些常量? 如果这种声明常量的方法不好,那么在Swift和Objective-C代码中使用全局常量的最佳方法是什么? 问题答案: 可悲的是,你不能暴露,也不是Objectiv
我现在正在实现模拟N体问题的Barnes-Hut算法。我只想问关于建筑树的部分。 我做了两个函数来为它构建树。 我递归地构建树,并在构建时打印每个节点的数据,一切看起来都是正确的,但当程序返回到主函数时,只有树的根和根的子节点存储值。其他节点的值没有被存储,这很奇怪,因为我在递归过程中打印了它们,它们应该被存储。 这是经过修改的代码的一部分,我认为问题可能在哪里: 下面是函数set_root_an
本文向大家介绍c# ArrayList的使用方法小总结,包括了c# ArrayList的使用方法小总结的使用技巧和注意事项,需要的朋友参考一下 *** Source URL: http://i.yesky.com/bbs/jsp/view.jsp?articleID=889992&forumID=150 *** 1、什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说
本文向大家介绍使用C#实现数据结构堆的代码,包括了使用C#实现数据结构堆的代码的使用技巧和注意事项,需要的朋友参考一下 一、 堆的介绍: 堆是用来排序的,通常是一个可以被看做一棵树的数组对象。堆满足已下特性: 1. 堆中某个节点的值总是不大于或不小于其父节点的值 任意节点的值小于(或大于)它的所有后裔,所以最小元(或最大元)在堆的根节点上(堆序性)。堆有大根堆和小根堆,将根节点最大的堆
主要内容:1、定义结构体,2、结构体的特征,3、类与结构体在 C# 中,结构体也被称为结构类型(“structure type”或“struct type”),它是一种可封装数据和相关功能的值类型,在语法上结构体与类(class)非常相似,它们都可以用来封装数据,并且都可以包含成员属性和成员方法。 1、定义结构体 要定义一个结构体需要使用 struct 关键字,每个结构体都可以被看作是一种新的数据类型,其中可以包含多个成员(成员属性和成员方法),例如下面