万能存储器:C++中的元胞数组的基本操作

article/2025/10/24 2:50:27

目录

 

万能存储器:C++中的元胞数组

什么是元胞数组?

元胞数组怎么用?

代码示例

Decltype是什么?该如何使用?

Tuple_cat是什么?该如何使用?

Tuple_size是什么?如何使用?

Tuple_element什么作用?如何使用?

注:size_t的使用


万能存储器:C++中的元胞数组

什么是元胞数组?

元胞数组英文名字为“tuple”,他是个数据类型,但不是基本的数据类型,它更像是一个包含有各种数据类型的大杂烩,元胞数组本质上也是数组,但是它颠覆了数组的普遍规则,即普通数组是一个仅包含一种数据类型的集合体,而元胞数组则是混杂了多种数据类型。它突破了数组一般规律的限制,为我们带来了诸多便利。

元胞数组怎么用?

C++打开了支持元组的大门。std::tuple就是实现元组的模板类,您可使用任意数量的元素来实例化这个模板类,其中每个元素都可为任何类型。要访问这些元素,可使用标准库函数std::get。

代码示例

Decltype是什么?该如何使用?

定义:

Decltype全称declared type,意为已被声明的类型。它的作用是用于判断已定义的数据类型并返回该数据类型。

如何使用详见代码示例:

#include <iostream>  
#include <tuple>  
#include <string>  
using namespace std;  int main()  
{  // 这里应用了元胞数组的初始化,元胞数组不可以遍历只可以用"对象名=make_tuple()"或"对象名()"初始化  tuple < string, char, float > stud = make_tuple("超级霸霸强", 'f', 99.99);  string name;  char sex;  float mark;  tie(name, sex, mark) = stud;    cout << name << "的性别是" << sex << ";成绩是" << mark << endl;  /*decltype说白了就是一个类型名称,和int,float...相同,但是decltype存在的意义在于decltype(变量或表达式)可用于判断变量或 表达式的返回值的数据类型并且返回一个数据类型的名称*/  decltype(stud) stud1 = make_tuple("强哥", 'm', 88.88); // 声明一个与stud变量同类型的元胞数组  tie(name, sex, mark) = stud1;  cout << name << "的性别是" << sex << ";成绩是" << mark << endl;  
}  

 

Decltype的实质:

 

我们要知道使用decltype可以声明一个与已被声明过的变量同数据类型的变量。

Tuple_cat是什么?该如何使用?

Tuple_cat的作用:

Tuple_cat全称为tuple catenate,意为元胞数组连接。顾名思义,该函数主要用于两个元胞数组的连接。

如何使用详见代码:

#include <iostream>  
#include <tuple>  
#include <string>  
using namespace std;  int main()  
{  tuple<string, int, char> StudIntro("超级霸霸强", 7, 'f');  tuple<float, float> StudBody(98.5, 185.5);  auto Stud = tuple_cat(StudIntro, StudBody);  string Name;  int StudName;  char Sex;  float Weight, Height;  tie(Name, StudName, Sex, Weight, Height) = Stud;  cout << Name << "的student number为" << StudName << ";sex为" << Sex << ";weight为" << ";height为" << Height << endl;  
} 

 

Tuple_size是什么?如何使用?

Tuple_size的作用:

计算元胞数组的总元素的个数,其实就是计算数组的长度。

使用详见代码:

#include <iostream>       
#include <tuple>     
using namespace std;  int main()  
{  tuple<int, char, double> mytuple(10, 'a', 3.14);  std::cout << "mytuple has ";  std::cout << tuple_size<decltype(mytuple)>::value;  std::cout << " elements." << '\n';  return 0;  
}  

 

其中有疑问?

#include <iostream>  
#include <string>  
#include <tuple>  
using namespace std;  int main()  
{  tuple<string, int, char> stud("大明", 7, 'f');  cout << tuple_size<decltype(stud)>::value << endl;  // 固定形式要记住// 为什么要用decltype(stud)?  
} 

 

那让我们来看一看函数tuple_size函数的定义吧:

 

函数原型中表明函数的形参是元胞数组的定义类型,我们要知道decltype函数就是用来返回变量或函数返回值的数据类型的。

Tuple_element什么作用?如何使用?

Tuple_element的作用:

数组元素类型的别名。

使用方法详见代码示例:

#include <iostream>  
#include <string>  
#include <tuple>  
using namespace std;  int main()  
{  //可以直接初始化  std::tuple<int, double, std::string> t(64, 128.0, "Caroline");  //可以通过"std::tuple_element<0, decltype(t)>::type"获取元素类型  std::tuple_element<1, decltype(t)>::type cnt = std::get<1>(t);  std::cout << "cnt = " << cnt << std::endl;  
}  

 

代码演示:

 

注:size_t的使用

一个基本的无符号整数的C / C + +类型,该类型的大小可选择,因变量的取值而变。因此,它可以存储在理论上是可能的任何类型的数组的最大大小。


http://chatgpt.dhexx.cn/article/3KPjsM0A.shtml

相关文章

Matlab:元胞(cell)

一般来说&#xff0c;Matlab矩阵中的元素都是数值或字符&#xff0c;而元胞的元素可以是数值&#xff0c;字符&#xff0c;矩阵&#xff0c;字符串&#xff0c;是一个元素多元化的矩阵。 一、cell的创建 (1).类似于创建一般矩阵&#xff0c;直接使用C {A B D E}这种形式&…

matlab 向量化编程cellfun函数使用方法

cellfun 常用于向量化编程&#xff0c;比for循环要快 对元胞数组中的每个元胞应用函数 语法 A cellfun(func,C) A cellfun(func,C1,…,Cn) A cellfun(___,Name,Value) [A1,…,Am] cellfun(___) 说明 A cellfun(func,C) 将函数 func 应用于元胞数组 C 的每个元胞的内容&a…

元胞自动机CA+生命游戏代码

1、元胞自动机 元胞自动机(Cellular Automaton&#xff0c;复数为Cellular Automata&#xff0c;简称CA&#xff0c;也有人译为细胞自动机、点格自动机、分子自动机或单元自动机)。是一时间和空间都离散的动力系统。散布在规则格网 (Lattice Grid)中的每一元胞(Cell)取有限的离…

【元胞自动机】基于元胞自动机模拟晶体生长matlab源码

1.元胞 元胞又可称为单元。或基元&#xff0c;是元胞自动机的最基本的组成部分。元胞分布在离散的一维、二维或多维欧几里德空间的晶格点上。\ 每一个元胞都有一个状态&#xff0c;例如下方中间的元胞状态是有一只小虫子&#xff0c;其他元胞的状态是没有小虫子。但如果虫子移动…

复杂网络实验4:一维元胞自动机(matlab)

一.思路 一维元胞自动机 一维元胞自动机的意思是&#xff0c;当前元胞的状态&#xff0c;只能被左右元胞的状态影响&#xff0c;而不能被上下元胞影响&#xff08;能上下就是二维了&#xff09; 为什么普通一维元胞自动机&#xff08;只有当前元胞和左右两个邻居&#xff09…

Matlab和C/C++元胞数组cell相关操作总结

元胞数组cell 1 Matlab中元胞数组cell的操作1.1 数组与元胞数字相互转换&#xff1a;mat2cell、cell2mat1.1.1 mat2cell使用形式实例一&#xff1a;划分数组并以元胞数组形式返回子数组实例二&#xff1a;按行划分数组 1.1.2 cell2mat使用形式实例一&#xff1a;将元胞数组转换…

Windows访问Macbook共享文件夹

1.条件&#xff1a;macbook与windows在同一局域网内 2.设置MacBook共享文件夹 (1).左上角系统偏好设置 (2)点击文件共享 (3).选择共享文件目录 (4).选择该目录使用的用户 (5).设置共享权限权限 3.windows访问共享文件&#xff1a; (1).winr (2).输入:192.168.0.100是MacB…

win11本机和虚拟机共享文件夹

本来想在本机win11系统上装一个Oracle数据库&#xff0c;可是一直停在数据库安装向导进不去&#xff0c;果断选择在虚拟机中装一个win10试试是不是win11系统的问题&#xff0c;在装完系统之后发现&#xff0c;win10的本机和虚拟机共享1文件夹的方式和之前不一样&#xff0c;然后…

VirtualBox 共享文件夹 挂载点设置

step 1 主机设置 选中虚拟机->设置->共享文件夹&#xff0c;做如下设置&#xff1a; 建议选中“自动挂载”和“固定分配”。 step 2 虚机设置 step 1设置好后&#xff0c;打开虚机&#xff0c;进入文件浏览器&#xff0c;即可看到挂载的目录&#xff1a; 同时&#xff0…

Mac 共享文件夹

1. Go to System Preferences -> Sharing 2. 勾选左边栏 File Sharing, 选择要共享的文件夹&#xff0c;用户以及用户权限 3. 点击 Option,选择用户,点击Done 转载于:https://www.cnblogs.com/chou-er/p/6795062.html

windows10 访问 Mac 共享文件夹

起初想要用 mac 访问windows的共享文件夹&#xff0c;但是连不通。网上的资料良莠不齐&#xff0c;踩了很多坑&#xff0c;最后发现是windows机器没有本地共享安全策略&#xff0c;因为我的电脑是windows10 家庭版。 所以想办法共享 mac 中的文件给 windows 机器。 在这里记录…

服务器上文件夹没有共享,服务器没有共享文件夹

服务器没有共享文件夹 内容精选 换一换 本节操作介绍本地MacOS系统主机通过安装“Microsoft Remote Desktop for Mac”工具向Windows云服务器传输文件的操作步骤。本地主机已安装Microsoft Remote Desktop for Mac或其他Mac OS系统适用的远程连接工具。下载Microsoft Remote De…

Mac访问共享文件夹

这里以我要访问一台 Windows 电脑上的一个 AirPlay 文件夹为例&#xff0c;从下图中可以看到已经共享了此目录。 先在 Mac 系统中打开 Finder 应用&#xff0c;如图所示 打开 Finder 窗口以后&#xff0c;请按键盘上的 commandK 组合键&#xff0c;如图所示 随后我们在框框中输…

苹果系统 怎么找到共享计算机,Mac电脑怎么访问共享文件夹

如果你是一位Mac电脑用户&#xff0c;想要访问身边的Windows 系统共享&#xff0c;应该怎么操作呢?这里学习啦小编简单介绍下操作方法。 Mac电脑访问共享文件夹的方法 这里以我要访问一台 Windows 电脑上的一个 AirPlay 文件夹为例&#xff0c;从下图中可以看到已经共享了此目…

mac连接服务器共享文件夹,教大家Mac访问Windows共享文件夹的方法

今天小编来给大家针对这个教大家Mac访问Windows共享文件夹的方法的问题来进行一个介绍&#xff0c;毕竟当下也是有诸多的小伙伴对于教大家Mac访问Windows共享文件夹的方法这个问题非常的重视的&#xff0c;下面大家可以看下具体的详情 第一步&#xff1a;在先Windows中新建文件…

vm用c语言进入共享文件夹,如何在Vmware虚拟机中访问MAC共享文件夹

我们有时需要在MAC电脑上完成一些Windows系统中才能做的事&#xff0c;但是用户们又不想安装Windows系统&#xff0c;因此&#xff0c;安装Vmware虚拟机就成为了这类用户们的最佳选择。不过我们怎么才能在Vmware虚拟机中访问MAC共享文件夹呢&#xff1f; 具体操作步骤&#xff…

mac怎么访问服务器文件夹,Mac OS X共享文件夹的访问

设置好Mac系统的文件共享功能后&#xff0c;同一网段的计算机就可以通过局域网访问此Mac系统了。下面&#xff0c;分别介绍如何通过Mac系统与Windows系统访问Mac电脑中的共享文件夹。 一、Mac系统访问Mac共享文件夹 1. 通过“前往”>“网络”命令访问局域网中的Mac电脑 首先…

mac操作系统如何访问共享计算机,windows电脑怎么访问苹果电脑共享文件夹

在一个局域网之中&#xff0c;我们可以通过设置共享的方法&#xff0c;让其他电脑来访问本机共享文件夹&#xff0c;从而实现数据快速传输。那么windows电脑怎么访问苹果电脑的共享文件夹呢&#xff1f;下面就跟小编一起来学习下windows系统访问mac系统共享文件步骤。 一、所需…

Mac VMware Fusion设置共享文件夹

我们首先点击小扳手按钮&#xff0c;接着点击共享按钮。 根据自身情况配置一个共享文件夹 在mnt/目录下创建一个名为 hgfs的目录&#xff08;记得创建目录&#xff0c;否则会报错&#xff09;。

mac共享文件android,Mac如何访问安卓系统共享文件夹的方法

Mac系统与安卓系统的差异导致了很多网友都无法完成两个系统间互相访问共享文件夹的操作&#xff0c;对办公等造成了很多的困扰&#xff0c;那么到底Mac系统如何访问WIN系统的共享文件夹呢?今天学习啦小编就为大家带来了Mac如何访问安卓系统共享文件夹的解决方法&#xff0c;希…