c++ std::tuple用法

news/2025/3/6 10:27:15/

std::vector<std::tuple<double, int>> edges 中添加数据可以通过以下方法实现:

1. 使用 push_backstd::make_tuple

#include <vector>
#include <tuple>// 假设已经声明了 edges
std::vector<std::tuple<double, int>> edges;// 添加数据
edges.push_back(std::make_tuple(3.14, 42));  // 直接构造并添加 tuple

2. 直接构造 std::tuple 对象

edges.push_back(std::tuple<double, int>(2.718, 100)); // 显式构造 tuple

3. 使用 emplace_back(更高效,推荐)

emplace_back 会直接在容器内部构造元素,避免临时对象的拷贝:

edges.emplace_back(1.618, 5);  // 自动推导参数类型并构造 tuple

4. 初始化列表(批量初始化)

如果要在声明时初始化:

std::vector<std::tuple<double, int>> edges = {{1.1, 10},{2.2, 20},{3.3, 30}
};

5. 注意事项

  • 类型顺序:确保 tuple 的元素顺序与声明一致(double 在前,int 在后)。
  • 效率:优先使用 emplace_back,它比 push_back 更高效(避免一次拷贝)。
  • 头文件:需要包含 <vector><tuple>

完整示例

#include <iostream>
#include <vector>
#include <tuple>int main() {std::vector<std::tuple<double, int>> edges;// 添加数据edges.emplace_back(3.14, 42);edges.push_back(std::make_tuple(2.718, 100));// 遍历输出for (const auto& edge : edges) {std::cout << "(" << std::get<0>(edge) << ", "<< std::get<1>(edge) << ")\n";}return 0;
}

输出:

(3.14, 42)
(2.718, 100)

通过以上方法,你可以灵活地向 edges 中添加数据。


http://www.ppmy.cn/news/1577042.html

相关文章

Franka机器人FR3快速安装指南

获取英语和其他语言的手册和 其他支持材料。关注PNP机器人 Franka Research 3 FR3机器人 安装快速指南 本指南将指导您 通过本产品手册的各个步骤&#xff0c; 以启动并运行系统。 文档编号&#xff1a;R02040 发行版本&#xff1a;1.1 英文文档是原版文档。 其他语言是…

Qt:文件

目录 前言 QFile的使用 QFileInfo的使用 前言 关于文件相关操作&#xff0c;之前也学习过很多&#xff1a; C语言中 fopen 打开文件 fread fwrite 读写文件 fclose 关闭文件C中 fstream 打开文件 << >> 读写文件 close 关闭文件Linux中 open 打开文件 read wr…

Django模型数据修改:详解两种方式

Django模型数据修改&#xff1a;详解两种方式 在Django框架中&#xff0c;数据模型&#xff08;Model&#xff09;定义了应用的数据结构&#xff0c;并提供了与数据库交互的接口。数据的修改是Django开发中的常见操作之一。本文将详细介绍两种在Django中修改数据的方式&#x…

Gpt翻译完整版

上一篇文章收到了很多小伙伴的反馈&#xff0c;总结了一下主要以下几点&#xff1a; 1. 说不知道怎么调api 2. 目前只是把所有的中文变成了英文&#xff0c;如果想要做多语言还需要把这些关键字提炼出来成放到message_zh.properties和message_en.properties文件中&#xff0c…

Python的那些事第三十九篇:MongoDB的Python驱动程序PyMongo

PyMongo:MongoDB的Python驱动程序 摘要 PyMongo 是 MongoDB 的官方 Python 驱动程序,用于在 Python 应用程序中与 MongoDB 数据库进行交互。本文将详细介绍 PyMongo 的安装、基本操作、高级功能以及实际应用案例,并通过示例代码和表格展示其强大的功能和灵活性。 1. 引言 …

【AI深度学习基础】Pandas完全指南终极篇:构建企业级数据工程与AI应用 (含完整代码)

&#x1f4da; Pandas 系列文章导航 入门篇 &#x1f331;进阶篇 &#x1f680;终极篇 &#x1f30c; &#x1f30c; 前言 通过前两篇的学习&#xff0c;我们已掌握 Pandas 的核心操作与高阶技巧。本篇将突破工具边界&#xff0c;探索 生产级数据工程架构设计、亿级数据处理方…

【2025小白版】计算复试/保研机试模板(个人总结非GPT生成)附代码

一、编程语言选择 很多高校在机试中对编程语言都有明确规定&#xff0c;像复旦大学计算机学院就说明可选择 C、C 或 Java 语言答题&#xff0c;还支持 C11&#xff08;gcc5.4&#xff09;&#xff0c;C14&#xff08;g5.4&#xff09;&#xff0c;Java (openjdk1.8&#xff09…

AJAX 入门:从基础到实践

1.1 AJAX 介绍 AJAX 是一种用于创建快速动态网页的技术&#xff0c;它结合了 JavaScript 和 XML&#xff08;虽然现在也常用 JSON 数据格式&#xff09;。通过在后台与服务器进行少量数据交换&#xff0c;AJAX 可以使网页实现异步更新。这意味着在不重新加载整个网页的情况下&…