python中tuple函数的用法,python tuple用法

  python中tuple函数的用法,python tuple用法

  另一方面,C中复杂的数据结构是从C开始的,C的发展也是如此,标准库一般不支持复杂的数据结构。比如多维数组,有多个键值的KV,更不用说复杂的一组树了。其实我们也知道,C/C作为一种基础支持语言,是需要效率和多平台支持的。因此,在一个复杂的数据结构中,不可能对整个数据结构进行优化,尤其是对于特定的平台。这也是很多自信便当自己弄的“跳表”之类的数据结构。

  就图像而言,STL库是由“短小精悍”的函数和类组成的,所以不会表现出特别复杂的数据结构。事实上,它是基于复杂的数据结构,例如基于map实现的数据结构。

  2.pair、tuple pair和tuple都是用于复杂数据封装的数据结构。前者类似KV数据库,一一对应。后者被认为是pair的扩展,可以在一个元素中支持更多的值。最初的标准不到10,但是在c 11之后可以支持更多的值。实际上,在c/c的情况下,因为它们可以相互封装,所以会产生更大的组合结构,例如两个元组可以成对组合。

  我们来看看STL的定义。

  //definedinheaderutilitytemplateclasst 1,类T2结构对;//definedinheadertupletemplateclass。typesclasstuple除了在Pair中使用构造函数,STL还提供了一个在std:make_pair中创建的便捷方法,一般推荐使用。Pair提供了替换、比较等常用操作,使用起来越来越方便。对于tuple来说,STL叫做不定长值组,比pair更复杂,但是可以移植到std:tie。这个std:tie是tuple的左值引用,比较有意思。元组也是通过提供std:make_tuple来创建的。如果有一个,就有两个。它还提供了一个tuple_cat)函数,即使看到名字也可以连接多个元组,这在某些情况下很有用。

  同样,从c 11开始,可以使用初始化列表来初始化列表,实现整体的赋值结构。Pair和tuple可以用关联的构造函数进行转换,但是它们看起来仍然不够灵活。

  三、套路先看双人的套路:

  # include iostream # include实用工具# includefunctionalintmain(){ int n=1;inta [5]={ 1,2,3,4,5 };//buildapairfromtwointsautop 1=STD:3360 make _ pair(n,a[1];STD:3360 cout P1的值是 P1.first , P1 . second )\ n ;//buildapairfromareferencetointandanaray(decayedtopointer)autop 2=STD 3360:make _ pair)STD:ref(n),STD:3360 cout p2的值是 (p2.first , *(p2 . second 2))n);}执行结果:

  看p1is (1 1,2)的值p2is (7,3)元组的值:

  # include iostream # include tuple # includefunctionalstd 33603360 tuple int,intf(/thisfunctionreturnsmultipalues { int })//return { x,7 };Inc 17 } int main(/hetereoustupleconstruction)/STD 33603360 tuple int,int({1,-1 });//初始值设定项列表int n=1;autot=STD :3360 make _ tuple (10, Test ,3.14,STD33603360ref(n),n);n=7;STD:3360 cout thevalueoftis STD 33603360 get 0(t),STD33603360get1) t),STD33603360get2) (t).//函数returningmultiplevaluesinta,b;STD:3360tie(a,b)=f);STD:cout a b \ n ;}执行结果:

  与valueofTis(10,Test,3.14,7,1 )5) 7相关的例程来自cppreference.com。总结这两种数据结构的应用非常简单。传统程序员一般都是自己做。但是用STL实现的东西,很多自信的便当人都在复习,拿出来工作还是可以接受的。果然,善于学习,不自以为是,才是进步的动力和源泉。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: