stl
四叶草姚
好好学习,好好休息
展开
-
c++ 中使用typeid
c++ 中使用typeid在c++中,typeid用于返回指针或引用所指对象的实际类型。 注意:typeid是操作符,不是函数!类似于sizeof一样 使用typeid要包含#include <typeinfo> 使用typeid(value).name()获得类型名称,返回的名称由编译器决定。 name()函数原型代码: /** Returns an @e imp...原创 2018-07-29 23:56:31 · 1497 阅读 · 1 评论 -
C++之智能指针
c++智能指针C++中有四个智能指针:auto_ptr, shared_ptr, weak_ptr, unique_ptr ,其中后三个是c++11支持,并且第一个已经被c++11弃用。智能指针从书面意思来说,就是智能。主要是动态内存的使用很容易出问题,要在正确的时间正确释放内存是很困难的。有时我们可能忘了释放内存,会导致内存泄漏;有时我们使用一个已经释放了的内存的指针,会产生引用非法内存...原创 2018-08-20 23:07:10 · 180 阅读 · 0 评论 -
快速排序算法之使用STL中partition和stable_partition
1.问题描述使用STL中partition和stable_partition来编写快速排序。 注意:关于STL中partition和stable_partition可以参考这里2.分析我们已经知道,partition和stable_partition是把一个容器按照第三个参数谓语分成两个部分。后者是稳定排序,不改变容器的相对位置,是一个稳定排序。那么,这两个函数已经把快速排序中分...原创 2018-08-20 18:26:47 · 1114 阅读 · 0 评论 -
STL之stable_partition与partition的区别
“partition”和“stable_partition”根据一个谓词而把容器分为两部分。例子:#include &lt;iostream&gt;#include &lt;vector&gt;#include &lt;algorithm&gt;using namespace std;template&lt;typename T&gt;void printVe原创 2018-08-20 17:07:39 · 1696 阅读 · 0 评论 -
C++之lambda表达式
1.C++之lambda表达式我们可以向一个算法传递任何类别的可调用对象。可调用对象有函数,函数指针,其实还有重载了函数调用运算符的类,和lambda表达式。 这里只说lambda表达式。[capture list](parameter lsit) -> return type { function body}如: auto f = [](){return "...原创 2018-08-20 11:58:49 · 226 阅读 · 0 评论 -
C++向算法传递参数---STL
1.向算法传递参数在STL中,大多数算法都在&lt;algorithm&gt;头文件中。一般情况小,这些算法不直接操作容器,而是通过遍历由迭代器指定的范围,这个范围是前闭后开,即[begin,end)。例如:向算法传递一个值#include &lt;iostream&gt;#include &lt;vector&gt;#include &lt;algorithm&原创 2018-08-20 10:09:13 · 577 阅读 · 0 评论 -
c++中map的一些用法
c++中map用法map是STL中的一种关联容器,它按照特定顺序存储由键值和映射值的组合形成的元素。在map中,键值通常用于排序和唯一标识元素,而映射值存储与此键关联的内容。 键和映射值的类型可能不同,并在成员类型value_type中组合在一起,这是一种结合两者的对类型: 引用块内容...原创 2018-07-27 19:05:05 · 279 阅读 · 0 评论 -
c++中的函数模板
c++中的函数模板1.函数模板形式c++中模板函数,需要使用关键字template,typename或者class。typename和class在模板函数中的使用相同,绝大部分情况下可以互换。 模板函数需要在函数开头中使用template<typename _T>或者template<class _T>。2.使用函数模板原因:重载可以实现一个函数名多用...原创 2018-07-30 16:21:34 · 293 阅读 · 0 评论 -
c++中string的assign方法使用
c++中string的assign方法使用string的实际.h和.cpp文件是basic_string.h 和basic_string.tcc,所以string中assign也在这两个文件声明和定义;1.assign的声明:basic_string& assign(const basic_string& __str)basic_string& ass...原创 2018-07-30 10:49:49 · 7136 阅读 · 0 评论 -
c++中std::swap使用方法
c++中std::swap使用方法1.std::swap的源码:template<typename _Tp> inline void swap(_Tp& __a, _Tp& __b)#if __cplusplus >= 201103L noexcept(__and_<is_nothrow_move_constructible...原创 2018-07-30 08:44:35 · 35566 阅读 · 2 评论 -
基于STL中的deque栈和队列实现
1.使用STL中的deque实现栈和队列在STL中,stack和queue都是在deque的基础上实现的,就是限制了数据输入输出的方向,栈是都在头部执行操作,队列是输入数据在尾部,输出数据在头部2.stack的实现template&lt;typename T&gt;class m_stack{public: void push(T n)//压栈 { ...原创 2018-08-28 11:33:59 · 656 阅读 · 0 评论