赞
踩
第三方库库函数,使用了 const std::tuple<name, id> 作为参数, 当需要改变这里tuple中元素的值, 怎么办?
答: 使用引用传参数,如何使用引用呢? 见如下代码.
- #include <iostream>
- #include <tuple>
- #include <string>
- #include <functional> // 使用std::ref()函数
-
- // 注意: 这里使用的引用的方法是std::reference_wrapper, 不是 std::ref
- using PeopleInfo = std::tuple<std::reference_wrapper<std::string>, std::reference_wrapper<int>>;
-
- void change_tuple_value(const PeopleInfo &myTuple)
- {
- // 使用 std::tie 进行解包,将元组元素绑定到引用
- std::string &refName = std::get<0>(myTuple);
- int &refId = std::get<1>(myTuple);
-
- // 修改绑定的变量
- refName = "Bobbbb";
- refId = 456;
- }
-
- int main()
- {
- std::string name = "Alice";
- int id = 123;
-
- // 创建一个引用元组
- auto myTuple = std::make_tuple(std::ref(name), std::ref(id));
-
- change_tuple_value(myTuple);
-
- // 打印原始变量
- std::cout << "Name: " << name << ", ID: " << id << std::endl;
-
- return 0;
- }
Name: Bobbbb, ID: 456
*** Exited normally ***
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。