本资源是以压缩包的方式的,里面是一个“TXT”的文档,文档中有“百度云”分享的链接,这本书太大,上传不上来,所以以这样的方式上传。
永久有效,欢迎下载。
本书作者是:NicolaiM.Josuttis,侯捷(译)内容简介:《C++标准库(第2版)》是全球C++经典权威参考书籍时隔12年,基于C++11标准的全新重大升级。
标准库提供了一组公共类和接口,极大地拓展了C++语言核心功能。
《C++标准库(第2版)》详细讲解了每一标准库组件,包括其设计目的和方法、复杂概念的剖析、实用而高效的编程细节、存在的陷阱、重要的类和函数,又辅以大量用C++11标准实现的实用代码范例。
除覆盖全新组件、特性外,《C++标准库(第2版)》一如前版,重点着眼于标准模板库(STL),涉及容器、迭代器、函数对象以及STL算法。
此外,《C++标准库(第2版)》同样关注lambda表达式、基于区间的for循环、move语义及可变参数模板等标准库中的新式C++编程风格及其影响。
部分目录:第2版译序xxi第2版序言xxiii第2版致谢xxiv第1版序言xxv第1版致谢xxvi1关于本书11.1缘起11.2阅读前的必要基础21.3本书风格与结构21.4如何阅读本书41.5目前发展情势51.6范例代码及额外信息51.7反馈52C++及标准库简介72.1C++Standard的历史72.1.1C++11Standard常见疑问82.1.2C++98和C++11的兼容性92.2复杂度与Big-O标记103语言新特性133.1C++11语言新特性133.1.1微小但重要的语法提升133.1.2以auto完成类型自动推导143.1.3一致性初始化(UniformInitialization)与初值列(InitializerList)153.1.4Range-Basedfor循环173.1.5Move语义和RvalueReference193.1.6新式的字符串字面常量(StringLiteral)233.1.7关键字noexcept243.1.8关键字constexpr263.1.9崭新的Template特性263.1.10Lambda283.1.11关键字decltype323.1.12新的函数声明语法(NewFunctionDeclarationSyntax)323.1.13带领域的(Scoped)Enumeration323.1.14新的基础类型(NewFundamentalDataType)333.2虽旧犹新的语言特性333.2.1基础类型的明确初始化(ExplicitInitializationforFundamentalType)373.2.2main()定义式374一般概念394.1命名空间(Namespace)std394.2头文件(HeaderFile)404.3差错和异常(ErrorandException)的处理414.3.1标准的ExceptionClass(异常类)414.3.2异常类(ExceptionClass)的成员444.3.3以Classexception_ptr传递异常524.3.4抛出标准异常534.3.5自标准异常类派生544.4CallableObject(可被调用的对象)544.5并发与多线程554.6分配器(Allocator)575通用工具595.1Pair和Tuple605.1.1Pair605.1.2Tuple(不定数的值组)685.1.3Tuple的输入/输出745.1.4tuple和pair转换755.2SmartPointer(智能指针)765.2.1Classshared_ptr765.2.2Classweak_ptr845.2.3误用SharedPointer895.2.4细究SharedPointer和WeakPointer925.2.5Classunique_ptr985.2.6细究Classunique_ptr1105.2.7Classauto_ptr1135.2.8SmartPointer结语1145.3数值的极值(NumericLimit)1155.4Type
2019/2/22 9:38:17 482B c++ 标准库 第2版
1
我用的是netbean6.8开发的...,有些小快乐,分享了。
stl+template开发确实方便了不少,可以作为初级C++stl、template学习参考...
2019/4/3 12:19:09 126KB 项目、STL、C++ 、STL、Template MVC
1
侯捷先生在一篇影响广泛的STL技术杂文中,将STL的学习境界划分为三个阶段,(1)会用,(2)明理,(3)扩展。
阅读STL源码是由第一层次直贯第二层次,而渐达於第三层次的一条捷径,当然也是条荆棘之路。
如果你是一个勇於征服险峰的程式师,如果你是一个希望了解underthehood之奥妙的程式师,那麽当你在攀登STL这座瑰丽高山的时候,这本书会大大地帮助你。
我非常热情地向您推荐这本着作。
当然,再好的书籍只是工具,能不能成功,关键还在你自己。
2021/2/7 12:55:56 898KB stl
1
全书内容包括准备开发环境、TCP/IP基本介绍、Windows套接字基础、协议特征、基本TCP套接字编程、基本UDP套接字编程、套接字选项、套接字阻塞模式开发、套接字非阻塞模式开发、Select模型开发、WSAAsyncSelect模型开发、WSAEventSelect模型开发、重叠I/O模型开发和完成端口模型开发。
为使读者深入理解套接字的理论知识,增加实践项目经验,本书最后7章,每章讲解一个具有实践意义的网络应用程序。
在这些实例中包含许多软件开发技术知识,如STL、ADO、多线程、MFC、软件设计模式等。
2021/9/16 23:47:37 49.2MB Windows Sockets 网络开发
1
LeetCodecpp最新中文题解.pdfLeetCodecpp最新中文题解.pdfLeetCodecpp最新中文题解.pdf目录3.4Addbinary615.1.5BinaryTreeLevelOr-3.5LongestPalindromicSubstring.62dertraversalil3.6RegularExpressionMatching665.1.6BinaryTreeZigzag3.7WildcardMatching67LevelOrdertraversal.963.8LongestCommonPrefix5.1.7RecoverBinarySearch3.9ValidNumber70Tree983.10Integertoroman725.1.8SameTree3.11RomantoInteger735.1.9SymmetricTree1003.12CountandSay745.1.10BalancedBinaryTree..1023.13Anagrams755.1.11FlattenBinaryTreeto3.14SimplifyPath76LinkedList1033.15LengthofLastWord775.1.12PopulatingNextRightPointersineachnodeii105第4章栈和队列7952二叉树的构建10641栈795.2.1ConstructBinaryTree4ValidParentheses79fromPreorderandIn4.1.2LongestvalidParenorderTraversa106theses805.2.2ConstructBinaryTree4.1.3LargestRectangleinfromInorderandposHistogram82torderTraversal1074.1.4Evaluatereversepol-53二叉查找树108ishnotation845.3.1UniqueBinarySearch4.2队列85Trees.1085.3.2UniqueBinarySearch第5章树86Treesli.1105.1二叉树的遍历865.3.3ValidateBinarySearch5.1.1BinaryTreePreorderTreeTraversal865.3.4ConvertSortedarrayto5.1.2BinaryTreeInorderBinarySearchTree...112Traversal885.3.5ConvertSortedListto5.1.3BinaryTreePostorderBinarySearchTree113Traversal9054二叉树的递归.1145.1.4BinaryTreeLevelOr5.4.1MinimumDepthofBidertraversal)2narylree115目录5.4.2MaximumDepthofBi8.3.,2重新实现nextpermunaryTree116tation1425.4.3PathSum11783.3递归.1435.44PathSumil1188.4PermutationsII1445.4.5BinaryTreeMaximum8.4.1nextpermutation...144PathSuum11984.2重新实现nextpermu5.4.6PopulatingNextRighttation144Pointersineachnode120843递归1445.4.7SumRoottoLeafnum8.5Combinations146bers2185.1递归1468.5.2迭代147第6章排序1238.6LetterCombinationsofaphone6.1MergeSortedArray123umber1476.2MergeTwoSortedLists12486.1递归1486.3MergekSortedLists124862迭代96.4InsertionSortList125第9章广度优先搜索1506.5Sortlist1269.1WordLadder1506.6FirstMissingPositive1279.2WordLadderil1546.7SortColors1289.3Surroundedregions162第7章查找94小结16413194.l适用场景1647.1Searchforarange131942思考的步骤7.2SearchInsertPosition.13294.3代码模板1657.3Searcha2DMatrix133第10章深度优先搜索173第8章暴力枚举法13510.1PalindromePartitioning1738.1Subsets13510.2UniquePaths1768.1.1递归1350.2.1深搜1768.1.2迭代.1371022备忘录法.1768.2Subsetsil13810.23动规177821递归13810.24数学公式1788.2.2迭代.14110.3UniquePathsIl1798.3Permutations14210.3.1备忘录法1798.3.1nextpermutation14210.3.2动规.180目录10.4N-Queens1813.4Maximalrectangle21310.5N-QueensII18413.5BestTimetoBuyandSellStock10.6Restoreipaddresses186.21410.7CombinationSum18813.6InterleavingString21510.8CombinationSumIl18913.7ScrambleString21710.9GenerateParentheses.19013.8MinimumPathSum.22210.10Sudokusolver19213.9EditDistance22410.11WordSearch.19313.10DecodeWays.22610.12小结19513.11Distinctsub22710.12.1适用场景19513.12WordBreak22810.122思考的步骤1951313WordBreakil2300.12.3代码模板197第14章图23210.12.4深搜与回溯法的区別.19714.1CloneGraph23210.12.5深搜与递归的区别..197第15章细节实现题235第11章分治法19915.1ReverseInteger2351.1Pow(x,n)19915.2PalindromeNumber.23611.2Sqrt(x)20015.3InsertInterval237第12章贪心法20115.4MergeIntervals23812.1Jumpgame20115.5MinimumWindowSubstring23912.2JumpgameII15.6MultiplyStrings24112.3BestTimetobuyandSellstock20415.7SubstringwithConcatenation12.4BestTimetobuyandsellstockl205ofallwords24412.5LongestSubstringWithoutre15.8Pascal,sTriangle245peatingCharacters20615.9PascalsTriangleIl24612.6ContainerwithMostWater..20715.10SpiralMatrix24715.11SpiralmatrixII248第13章动态规划20915.12ZigZagConversion25013.1Triangle20915.13DivideTwoIntegers25113.2MaximumSubarray15.14TextJustification25313.3PalindromePartitioningII1215.15MaxPointsonaline255目录第1章编程技巧在判断两个浮点数a和b是否相等时,不要用a==b,应该判断二者之差的绝对值fabs(a-b)是否小于某个阈值,例如1e-9。
判断一个整数是否是为奇数,用x%2!=0,不要用x%2=1,因为ⅹ可能是负用char的值作为数组下标(例如,统计字符串中每个字符岀现的次数),要考虑到char可能是负数。
有的人考虑到了,先强制转型为unsignedint再用作下标,这仍然是错的。
正确的做法是,先强制转型为unsignedchar,再用作下标。
这涉及C十整型提升的规则,就不详述了。
以下是关于STL使用技巧的,很多条款来自《EffectiveSTL》这本书。
vector和string优先于动态分配的数组首先,在功能上,由于vector能够保证连续内存,因此一旦分配了后,它的功能跟原始数组相当;其次,如果用new,意味着你要确保后面进行孓delete,一旦忘记了,就会出现BUG,且这样需要都写一行delete,代码不够短再次,声明多维数组的话,只能一个一个new,例如int**ary=newint*[row_num];for(inti=0:i<rownum;++1)ary[i]newint[col_num]用vector的话一行代码搞定vector<vector<int>>ary(row_num,vector<int>(col_num,0))使用reserve来避免不必要的重新分配第2章线性表这类题目考察线性表的操作,例如,数组,单链表,双向链表等。
2数组2.1.1RemoveDuplicatesfromSortedarray描述Givenasortedarray,removetheduplicatesinplacesuchthateachelementappearonlyonceandreturnthenewlengthDonotallocateextraspaceforanotherarray,youmustdothisinplacewithconstantmemoryForexample,GiveninputarrayA=[1,1,2Yourfunctionshouldreturnlength=2,andaisnow[1,2]分析无代码1/LeetCode,RemoveDuplicatesfromSortedArray//时间复杂度0(n),空间复杂度0(1)classSolutiontublicintremoveDuplicates(vector<int>&nums)tif(numsemptyo)return0;intindex=ofor(inti=1:inumssize:1++iif(nums[index]!nums[i])nums[++index]=nums[i]returnindex12.1数组代码2//LeetCode,RemoveDuplicatesfromSortedArray/使用STL,时间复杂度0(n),空间复杂度0(1)classSolutionipublicintremoveDuplicates(vector<int>&nums)treturndistance(numsbegin(),unique(numsbegin(),numsend())代码3/LeetCode,RemoveDuplicatesfromSortedArray/使用STL,时间复杂度0(n),空间复杂度0(1)lassSolutionfublicintremoveDuplicates(vector<int>&nums)treturndistance(numsbegin(,removeDuplicates(numsbegin(,numsend(),numsbegintemplate<typenameInIt,typenameoutit>OutItremoveDuplicates(InItfirst,InItlast,OutItoutput)thile(firstlast)i*output++=*firstfirstupper_bound(first,last,*firstreturnoutput相关题目RemoveDuplicatesfromSortedArrayI,见§2.1.22.1.2RemoveDuplicatesfromSortedArrayII描述Followupfor"RemoveDuplicates"Whatifduplicatesareallowedatmosttwice?Forexample,Givensortedarraya=[1,1,1,2,2,3]Yourfunctionshouldreturnlength=5,andAisnow[1,1,2,2,3分析加一个变量记录一下元素出现的次数即可。
这题因为是已经排序的数组,所以一个变量即可解决。
如果是没有排序的数组,则需要引入一个hashmap来记录出现次数。
4第2章线性表代码1//LeetCode,RemoveDuplicatesfromSortedArrayII//时间复杂度0(n),空间复杂度0(1)//qauthorhex108(https://github.com/hex108)classSolutiontublicintremoveDuplicates(vector<int>&nums)tif(numssize(<=2)returnnumssizeintindex=2for(inti=2:inumssize(:i++)ff(nums[i]!numslindex-2]nums[index++]=nums[i]returnindex;代码2下面是一个更简洁的版本。
上面的代码略长,不过扩展性好一些,例如将occur<2改为occur3,就变成了允许重复最多3次。
//LeetCode,RemoveDuplicatesfromSortedArrayII7/@author虞航仲(http://weibo.com/u/1666779725)//时间复杂度0(n),空间复杂度0(1)lassSolutionfpublicintremoveDuplicates(vector<int>&nums)tconstintn=numssizeintindex=0:for(inti=0:i<n;++i)if(i>0&&i<n-1&nums[i]=nums[i-1]&nums[i]=nums[i1])continue;nums[index++]=nums[i]returnindex;相关题目RemoveDuplicatesfromSortedArray,见§2.1.1
2019/5/20 21:34:34 866KB why
1
UltimakerCura官方版是一款功能强大的3D打印软件,UltimakerCura最新版与CAD软件一起使用可以简化工作流程,也可自定义设置,让软件可以愈加深度的控制,UltimakerCura官方版支持文件STL,OBJ,X3D,3MF,BMP,GIF,JPG,PNG等格式。
UltimakerCura官方版是一款功能强大的3D打印软件,UltimakerCura最新版与CAD软件一起使用可以简化工作流程,也可自定义设置,让软件可以愈加深度的控制,UltimakerCura官方版支持文件STL,OBJ,X3D,3MF,BMP,GIF,JPG,PNG等格式。
UltimakerCura官方版是一款功能强大的3D打印软件,UltimakerCura最新版与CAD软件一起使用可以简化工作流程,也可自定义设置,让软件可以愈加深度的控制,UltimakerCura官方版支持文件STL,OBJ,X3D,3MF,BMP,GIF,JPG,PNG等格式。
UltimakerCura官方版是一款功能强大的3D打印软件。
2021/8/5 14:34:08 107.1MB 3D打印
1
包含UnixLinux基础讲义、C基础讲义、轻松搞定C++言语、STL基础教程
2018/5/2 8:48:48 33.26MB 黑马C/C+ 黑马
1
北邮计算机院数据结构课程大作业:旅店管理系统在百忙之中用了4天时间,用MFC给一个计算机院的朋友编写的,与典型的数据库程序不同,该程序的存储完全以数组和链表方式存储在内存中,仅在必要时将信息保存到磁盘的xml文件中。
旅店功能包括预约、个人与集体入住、退房、折扣、查询、日志、信息保存等功能,界面比较简陋,改进余地非常大。
我认为:里面的STL使用思想、XML存取磁盘数据、MVC分离思想,值得初学者学习。
由于房间数比较少,没有考虑算法复杂度,靠的都是遍历搜索。
2018/6/17 2:11:19 920KB 酒店管理系统 TinyXML 数据结构 STL
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡