C++: tuple和pair语法和例子
简单记录C++的 tuple和pair语法和例子
·
在 C++ 中,tuple 和 pair 都是标准库中的数据结构,用于存储不同类型的值。它们在 C++11 及之后的版本中被支持,并且非常有用,特别是在需要将多个不同类型的元素组合在一起时。
1. pair是一个简单的容器,用来存储两个元素,这两个元素可以是不同类型的。
pair<double, string> location:
2. tuple 是一个可以包含多个元素的容器,支持不同类型的元素,元素的数量可以超过两个。tuple 比 pair 更灵活,因为它可以存储任意数量和类型的元素。
std::tuple<Type1, Type2, ..., TypeN> tuple_name;
下面分别对这两种数据结构举例和分析:
一、tuple
vector<tuple<string, double, string>> readings =
{
{"temperature", 23.5, "°C"},
{"humidity", 45.2, "%"},
{"pressure", 1013.25, "hPa"}
};
std::cout << std::get<0>(readings) << ", " << std::get<1>(readings) << ", " << std::get<2>(readings) << std::endl;
1.1 vector> readings:
-
- vector 是一个标准库容器,提供动态大小的数组功能,用于存储多个元素。
- tuple 表示每个元素是一个包含三个不同类型元素的元组。这里使用了:
- string:用于存储一个字符串(如单位名、测量项等)。
- double:用于存储一个浮动点数值(如温度、湿度、压力等物理量)。
- string:用于存储单位(如 "°C"、"%"、"hPa" 等)。
- readings 变量是一个 vector,它的每个元素都是一个 tuple,用于存储不同的测量数据。
1.2 初始化 readings:
-
- 使用了 列表初始化 来初始化 readings,里面包含了三个元素,每个元素都是一个 tuple,表示一个测量项。
- 每个 tuple 包含三个部分:
- "temperature":表示测量项的名称,类型是 string,表示温度。
- 23.5:测量值,类型是 double,表示温度的数值,单位为摄氏度(°C)。
- "°C":测量单位,类型是 string,表示温度的单位为摄氏度。
同理,第二个和第三个 tuple 元素分别表示湿度和气压:
-
- "humidity", 45.2, "%", 表示湿度 45.2%。
- "pressure", 1013.25, "hPa", 表示气压 1013.25 hPa。
二、pair
pair<double, double> location = { 34.0522, -118.2437 };
std::cout <<location.first << ", " << location.second << std::endl;
1.1 pair location:
-
- pair 是 C++ 标准库中的一个模板类,用于存储一对不同类型的值。
- pair 表示一个包含两个 double 类型元素的 pair,每个元素可以是一个浮动点数。
- 第一个 double 表示纬度(通常是正值或负值,表示南北方向)。
- 第二个 double 表示经度(通常是正值或负值,表示东西方向)。
- location 是这个 pair 类型的变量,用于存储位置的经纬度。
1.2 = { 34.0522, -118.2437 }:
-
- 这是 列表初始化 语法,用来初始化 location。
- { 34.0522, -118.2437 } 是一个包含两个 double 数值的列表:
- 34.0522:表示纬度(位于北纬)。
- -118.2437:表示经度(位于西经)。
- 这两个数值是常见的表示 地理坐标。
总结:
- 这段代码创建了一个 pair 类型的 location 变量,并通过列表初始化方式将其设置为 34.0522(纬度)和 -118.2437(经度),这两个值表示洛杉矶的地理坐标。
- pair 在这里用来存储经纬度信息,便于一对一存储相关的数据。
欢迎关注公众号【比特层递】,一起交流进步。
更多推荐
所有评论(0)