08 2015 档案
用栈操作实现队列的操作
摘要:原文链接:点击打开链接用栈实现下列队列操作:push(x) 在队列末尾添加元素xpop() 删除队列首的元素peek() 返回队列首元素但不删除它empty() 判断队列是否为空struct Queue { int data; struct Queue* next;};typede...
阅读全文
C++ Primer : 第十二章 : 文本查询程序
摘要:C++ Primer书上这个例子讲的很不错,写写帮助自己理解标准库和智能指针。.h 文件内容#include #include #include #include #include #include #include #include class QueryResult;class TextQuer...
阅读全文
C++ Primer : 第十二章 : 动态内存之allocator类
摘要:标准库allocator类定义在头文件 中。它帮助我们将内存分配和构造分离开来,它分配的内存是原始的、未构造的。类似vector,allocator也是一个模板类,我们在定义一个allocator类类型的时候需要制定它要分配内存的类型,它会根据给定的对象类型来确定恰当的内存大小和对齐位置:alloc...
阅读全文
C++ Primer : 第十二章 : 动态内存之动态数组
摘要:动态数组的分配和释放new和数组C++语言和标准库提供了一次分配一个对象数组的方法,定义了另一种new表达式语法。我们需要在类型名后跟一对方括号,在其中指明要分配的对象的数目。int* arr = new int[20]; // arr 指向第一个int方括号中的大小必须是整数,但不必是常量。可以使...
阅读全文
C++ Primer : 第十二章 : 动态内存之unique_ptr和weak_ptr
摘要:unique_ptr一个unique_ptr拥有它所管理的对象,与shared_ptr不同,unique_ptr指向的对象只能有一个用户。当unique_ptr被销毁后,它所指向的对象也被销毁。定义一个unique_ptr时,需要将其绑定到一个new返回的指针上,类似shared_ptr,初始化un...
阅读全文
leetcode之反转链表
摘要:原文链接:点击打开链接Reverse a singly linked listA linked list can be reversed either iteratively or recursively. Could you implement both?struct ListNode* reve...
阅读全文
单链表
摘要:单链表头文件 Link_list.h#pragma once#include #include #include struct Node{ int Element; struct Node* Next;};typedef struct Node* List;typedef st...
阅读全文
leetcode之链表排序题
摘要:原文链接:点击打开链接原题是这样的:Given a linked list and a valuex, partition it such that all nodes less thanxcome before nodes greater than or equal tox.You should ...
阅读全文
C++ Primer : 第十二章 : 动态内存之shared_ptr与new的结合使用、智能指针异常
摘要:shared_ptr和new结合使用一个shared_ptr默认初始化为一个空指针。我们也可以使用new返回的指针来初始化一个shared_ptr:shared_ptr p1;shared_ptr p2(new int(42)); // p2指向一个值为42的int接受指针参数的智能指针构造函数是e...
阅读全文
C++ Primer : 第十二章 : 动态内存之动态内存管理(new和delete)
摘要:C++语言定义了两个运算符来分配和释放动态内存:运算符new分配内存,运算符delete释放new分配的内存。运算符new和delete使用new动态分配和初始化对象在自由空间分配的内存是无名的,因此new无法为其分配的对象命名,而是返回一个指向该对象的指针:int* p = new int;默认情...
阅读全文
C++ Primer : 第十二章 : 动态内存之shared_ptr类实例:StrBlob类
摘要:StrBlob是一个管理string的类,借助标准库容器vector,以及动态内存管理类shared_ptr,我们将vector保存在动态内存里,这样就能在多个对象之间共享内存。定义StrBlob类:#include #include #include #include #include #incl...
阅读全文
C++ Primer : 第十二章 : 动态内存之shared_ptr类
摘要:在C++中,动态内存是的管理是通过一对运算符来完成的:new ,在动态内存中为对象分配空间并返回一个指向该对象的指针,delete接受一个动态对象的指针,销毁该对象,并释放该对象关联的内存。动态内存的使用很容器出现错误,确保在正确的时间释放动态内存是极其困难的。有时候我们会忘记释放动态内存,这样就会...
阅读全文
C++ Primer : 第十一章 : 关联容器示例: 一个单词转换的map
摘要:单词转换就是:将一些缩写的单词转换为实际的文本。第一个文件保存的是转换的规则,而第二个文件保存的是要转换的文本。假设单词转换的规则的文件如下:brb be right backk okay?y whyr areu youpic picturethk thanks!l8r later我们希望转换的文本...
阅读全文
C++ Primer : 第十一章 : 关联容器之关联容器的迭代器和操作
摘要:关联容器的操作除了和顺序容器定义的类型之外,关联容器还定义了一下几种类型:关联容器额外的类型别名key_type 此容器类型的关键字类型mapped_type每个关键字关联的类型,只 适用于mapvalue_type对于set,与key_type相同对于map,为pair关联容器的迭代器当解引用一个...
阅读全文
C++ Primer : 第十一章 : 关联容器之概述、有序关联容器关键字要求和pair类型
摘要:标准库定义了两种主要的关联容器:map和setmap中的元素时一些关键字-值(key-value)对,关键字起到索引的作用,值则表示与索引相关的数据。set中每个元素只包含一个关键字,可以完成高效的关键字查询操作。由map和set延伸出来一共8个关联容器,或者是一个map,或者是一个set,mult...
阅读全文
C++ Primer :第十章 :泛型算法之再探迭代器以及其他算法
摘要:除了为每个容器定义的迭代器之外,标准库在头文件还定义了额外集中迭代器, 包括:插入迭代器,这些迭代器被绑定到一个容器上,可以向容器插入元素。 流迭代器, 这些迭代器被绑定到输入或输出流上,可以遍历所关联的IO流反向迭代器,这些迭代器向后而不是向前...
阅读全文
C++ Primer : 第十章 : 泛型算法 之 lambda表达式和bind函数
摘要:一、lambda表达式lambda表达式原型: [capture list] (parameter list) -> retrue type { function body }一个lambda表达式表示一个可调用的代码单元,可以理解为一个未命名的内联函数。一个lambad表达式包含 : 一个捕获列表...
阅读全文
C++ Primer : 第十章 : 泛型算法 之 只读、写和排序算法
摘要:大多数算法都定义在头文件里,而标准库还在头文件里定义了一组数值泛型算法,比如accumulate。● find算法,算法接受一对迭代器表示要搜寻的范围,还接受一个给定的值,算法从给定的范围内查找,返回指向第一个等于给定值的元素的迭代器,若没有找到,则返回第二个参数。int val = 5;vecto...
阅读全文
C++ Primer : 第九章 : vector变长、string的其他操作以及容器适配器
摘要:vector变长机制、string的其他构造方法,添加、替换和搜索操作,string比较和数值转换,最后是容器适配器。vector对象是如何增长的vector和string类型提供了一些成员函数,允许我们与它实现中内存分配的部分互动:capacity()操作告诉我们容器在不扩张内存空间的情况下可以容...
阅读全文
C++ Primer : 第九章 : 顺序容器的操作以及迭代器失效问题
摘要:顺序容器的添加、访问、删除操作以及forward_list的特殊操作,还有迭代器失效问题。一、向容器添加元素// array不支持这些操作// forward_list有自己撰于的版本的insert和emplace// forward_list不支持push_back和emplace_back// ...
阅读全文
C++ Primer : 第九章 : 顺序容器的定义、迭代器以及赋值与swap
摘要:顺序容器属于C++ STL的一部分,也是非常重要的一部分。顺序容器包括:std::vector,包含在头文件中std::string, 包含在头文件中std::deque,包含在头文件中std::list,包含在头文件中std::forward_list,包含在头文件中std::array, 包含在...
阅读全文
浙公网安备 33010602011771号