C++:TypeDef使用元组
C++: TypeDef using Tuples
我正试图使用元组创建一个typedef,这是我的代码。
#include <iostream>
#include <boost/tuple/tuple.hpp>
#include <boost/tuple/tuple_io.hpp>
#include "boost/tuple/tuple_comparison.hpp"
using namespace std;
typedef tuple<std::string, unsigned int, double> Person;
void Print(Person people)
{
};
int main()
{
using boost::tuple;
Person p0 (string("Udbhav"),10,10);
return 0;
}
我无法调用get<gt;当我这样做的时候,从boost到p0。有人能指出我做错了什么吗?
程序中的问题是,您使用了令人讨厌的using namespace std;
语句,因此typedef
将元组解析为std::tuple
。看起来您认为main()
中的using boost::tuple;
允许您使用boost中的一个,这是错误的。typedef
不是一个宏,名称解析发生在声明时,而不是使用它。您可以通过删除using namespace std;
来测试这一点,您的typedef
将无法编译:
实例
感谢您的帮助。确保性病不会成为一个问题,它起到了作用。这是解决方案。
#include <iostream>
#include <boost/tuple/tuple.hpp>
#include <boost/tuple/tuple_io.hpp>
#include "boost/tuple/tuple_comparison.hpp"
using namespace std;
typedef boost::tuple<string,unsigned int,double> Person;
void Print(Person people)
{
cout << "Name : " << people.get<0>() << endl;
cout<< "Age : " << people.get<1>() << endl;
cout << "Height : " << people.get<2>() << endl;
};
int main()
{
using boost::tuple;
Person p0("Shuniya",0,0);
Person p1("Alpha",1,1);
Person p2("Beta", 2, 2);
Print(p0);
p0.get<1>() = 1;
Print(p0);
return 0;
}
相关文章:
- C++:TypeDef使用元组
- Pybind11:将元组列表从Python传递到C++
- 重载元组索引运算符-C++
- 在C++中,如何通过几种类型从元组中选择多个元素
- 将fold表达式与std::一起用于两个元组
- std::ranges::elements_view,用于自定义类似元组的数据
- 将元组的向量转换/构造为堆
- 专用于 std 元组的模板,而无需用户执行remove_cvref
- 将元组的向量构造成堆
- 元组由 Swig 生成的 Python 包装器返回,用于C++向量
- 将元组类型扩展为可变参数模板?
- 时间复杂度 当具有复合数据类型(如元组或对)时?
- 类内部和外部静态 constexpr 元组之间的差异
- 可变参数模板与使用元组在参数中添加不同的数据对
- 访问和打印元组中的数据,并使用 C++14 使用模板函数显示数据
- boost::包含提升单元的元组的哈希值
- 我正在寻找一种优雅的方式来从元组向量创建tuple_element向量
- 如何在可变参数模板函数中遍历可变参数元组?
- 如何使用 SML 随机生成八进制元组
- 元组的运行时索引