年轻人喜欢使用新技术,而且代码里到处都是,为了程序的稳定性,还是需要深入研究std::tuple后,方可大胆使用。
内存分布如何?
测试代码:
auto t = std::make_tuple(0x9,0x1,std::string("abcdefjjj"),0x10, 0x123);
t 的内存如下:
在tuple里,每个_Cons_node包含
_Value_type _Value;
_Tail_type _Tail;
如何比较大小?
简单点吧,代码如下:
template<class _Car1,
class _Cdr1>bool _Lt(const _Cons_node<_Car1, _Cdr1>& _Right) const
{ // return true if *this < _Right
return (_Value < _Right._Value ? true
: _Right._Value < _Value ? false
: _Tail._Lt(_Right._Tail));
}
根据不同的类型,会生成多份不同的2进制码,然后根据不同的类型进行比较。在自定义的结构里,需要注意实现:
operator==,!=,<,<=,>,>=
别让悲剧发生!!!!!