C++ 像Python一样使用元组tuple - std::tuple
std::tuple
std::tuple是C++11中引入的数据结构,可以将不同类型的值放到一起,类似python中的tuple
常用方法:
std::get 按索引获取值,如类型不是const,也可以用来设置值,如:std::get<0>(tuple) = value;
std::tuple_size 获取长度
std::tie 挨个将元素存入变量,需要类型一致
示例:
1 #include <iostream> 2 #include <string> 3 #include <functional> 4 #include <vector> 5 #include <tuple> 6 7 int main() 8 { 9 using tuple_student = std::tuple<int, std::string, int, double>; 10 11 tuple_student tuple_1 = std::make_tuple(1, "Tom", 180, 71.2); 12 tuple_student tuple_2 = std::make_tuple(2, "Rick", 188, 72.4); 13 tuple_student tuple_3 = std::make_tuple(3, "Bob", 166, 68.0); 14 std::cout << std::tuple_size<tuple_student>::value << '\n'; 15 16 std::vector<tuple_student> vStudents{ tuple_1, tuple_2, tuple_3 }; 17 18 for (tuple_student t : vStudents) 19 { 20 std::cout << "No: " << std::get<0>(t) << '\n' << 21 "Name: " << std::get<1>(t) << '\n' << 22 "Height: " << std::get<2>(t) << '\n' << 23 "Weight: " << std::get<3>(t) << '\n' << std::endl; 24 } 25 26 for (tuple_student t: vStudents) 27 { 28 int No; std::string name; int height; double weight; 29 std::tie(No, name, height, weight) = t; 30 std::cout << "No: " << No << '\n' << 31 "Name: " << name << '\n' << 32 "Height: " << height << '\n' << 33 "Weight: " << weight << '\n' << std::endl; 34 } 35 36 //C++17 new bind operation 37 for (tuple_student t : vStudents) 38 { 39 auto [ No, name, height, weight ] = t; 40 std::cout << "No: " << No << '\n' << 41 "Name: " << name << '\n' << 42 "Height: " << height << '\n' << 43 "Weight: " << weight << '\n' << std::endl; 44 } 45 46 return 0; 47 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具