
STL
文章平均质量分 72
cv_yuippe
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《我的都一本c++书》学习笔记:PPL之多线程
一、PPL是微软Visual C++ 2010中提供的一个简化多线程应用程序开发的编程模型。PPL建立在并发运行时的调度和资源管理组件之上。它在代码与底层线程机制之间插入了一层抽象层,提供支持并发的泛化、类型安全的算法和并行容器。 PPL支持如下特性: 1、并行算法:并行作用于一组数据的泛化算法 2、并行任务:一个可并行执行几个工作单位的机制 3、并行容器和对象:可安全的并发存取其元素的泛原创 2013-08-11 22:33:39 · 1742 阅读 · 0 评论 -
《我的第一本c++书》学习笔记:STL的一个简单例子
代码如下: // k.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include #include #include using namespace std; class Student { public: Student() { m_strName = ""; m_nHeight =原创 2013-08-06 22:44:44 · 763 阅读 · 0 评论 -
《我的第一本c++书》学习笔记:STL之函数的相关内容(二)
函数指针应用在STL算法中: // 3.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include #include using namespace std; class Student { public: Student() { m_strName = ""; m_nHeight =原创 2013-08-07 17:33:16 · 594 阅读 · 0 评论 -
《我的第一本c++书》学习笔记:STL之shared_ptr(上)
其原理: 通过对所管理的内存资源进行引用计数来达到对这个资源的管理;当新增一个shared_ptr对该资源进行管理时,或者说新增一个指向此资源的shared_ptr时,就将该资源的引用计数加1,反之,减少一个则减1。如果该资源的引用计数为0,则说明没有任何指针对其进行管理,就自动调用delete释放其所占用的内存资源。 当然并不是所有情况都要用到智能指针,一般在这几种情况下,优先考虑: 1、原创 2013-08-11 15:50:36 · 815 阅读 · 0 评论 -
《我的第一本c++书》学习笔记:STL常用头文件和名字空间
头文件 名字空间 描述 std原创 2013-08-01 15:07:11 · 951 阅读 · 0 评论 -
《我的第一本c++书》学习笔记:STL之函数模板和类模板
函数模板的声明语法格式如下: template 返回值类型 函数名(形参表) { //函数体 } 以max()为例子 template T mymax( const T a, const T b) { return a > b ? a : b; } 具体代码如下: // k.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include原创 2013-08-01 15:39:23 · 626 阅读 · 0 评论 -
《我的第一本c++书》学习笔记:STL之迭代器指针的使用注意事项
如下情况: 循环遍历删除容器中的元素 for (auto it=vecSalary.begin(); it != vecSalary.end(); ++it) { if(*it < 2) { vecSalary.erase(it); } } 看似正确,但仔细分析下, 在删除某个元素时,该元素的后一位会自动向前移动一位,以保持vector的连续性,这时迭代器指向的是被原创 2013-08-01 19:43:28 · 776 阅读 · 0 评论 -
《我的第一本c++书》学习笔记:STL之tuple
//将表示人的数据打包 struct Human { string strName; unsigned int nAge; double fWeight; }; vector vecHuman; 一个vector容器保存多组数据的问题,但是也需要在代码中定义多个结构体,如果结构体过多,就会使得代码显得繁杂,STL中的tuple就解决这问题: 跟结构体可以打包多个数据类似,tuple也原创 2013-08-02 13:43:26 · 1114 阅读 · 0 评论 -
《我的第一本c++书》学习笔记:STL之vector容器的常用操作函数
v.empty() 判断容器v是否为空,如果空,返回true,否则false v.size() 返回容器v中元素的个数 v.push_back(t) 在容器v的末尾增加一个值为t的元素 v.pop_back() 返回容器v的最后一个元素 v.insert(pos)原创 2013-08-02 13:53:52 · 801 阅读 · 0 评论 -
《我的第一本c++书》学习笔记:STL中的一些通用算法(一)
在用这些算法时,要在头文件中导入: #include for_each():遍历容器中的数据元素 find():查找特定的数据,或者说是唯一性的数据 find_if:查找特定范围的数据,这些数据在一个范围内 代码如下: // k.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #in原创 2013-08-06 17:17:56 · 637 阅读 · 0 评论 -
《我的第一本c++书》学习笔记:STL中一些通用算法(二)
copy():复制容器元素 merge():合并容器元素 以下为copy()代码: // k.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include #include using namespace std; int _tmain(int argc, _TCHAR* argv[]原创 2013-08-06 18:26:31 · 787 阅读 · 0 评论 -
《我的第一本c++书》学习笔记:STL中的一些通用算法(三)
transform(): 前面介绍的copy能移动数据,但在移动中,不能对其进行操作,所以STL提供了transform()来实现这项功能。 其重载了2个函数: 第一个有4个参数:前两个表示输入容器的范围,第三个表示输出的目标容器的起始位置,最后一个表示移动过程中所做的动作。 第二个有5个参数:其他都一样,只是在在第三个参数为第二个输入容器的起始位置。 代码如下: // k.c原创 2013-08-06 19:00:50 · 631 阅读 · 0 评论 -
《我的第一本c++书》学习笔记:STL之函数的相关内容(一)
一、函数指针的声明与赋值 首先,知道一个函数的函数名表示这个函数的入口地址。如果某个函数指针指向这个函数,则这个入口地址就是函数指针所指向的地址。 //声明一个函数 void PrintPass( int nScore ); //定义函数指针 void (*pPrintFunc)( int nScore ); 定义函数指针时也可缩写为: void (*pPrintFunc)( int );原创 2013-08-07 11:11:32 · 687 阅读 · 0 评论 -
《我的第一本c++书》学习笔记:STL中函数对象
函数只是表达一个运算过程,像沙漏,流过后不留下任何痕迹,如果遇到用一个函数统计容器所有Student对象的身高,就必须累加上次累加的结果。这时就必须用到函数对象。 函数对象:就是定义了函数调用操作符,即operator()的普通类的对象。 例如,可以定义一个函数对象类来实现比较两个数的大小 代码如下: // 3.cpp : 定义控制台应用程序的入口点。 // #include "stda原创 2013-08-07 21:23:38 · 727 阅读 · 0 评论 -
《我的第一本c++书》学习笔记:STL之Lambda表达式
前面介绍了函数对象,其优点在于解决函数指针无法保存状态数据的问题。 但如果在程序中大量使用函数对象,则会使代码非常累赘而冗长。 所以为了解决这问题,STL提供了Lambda表达式。 Lambda表达式可以方便地使用应用于STL中,对算法进行自定义,同时在可以访问Lambda表达式之外的数据,解决函数执行过程中状态数据的保存问题。 代码如下: // 3.cpp : 定义控制台应用程序的入口原创 2013-08-07 22:03:51 · 965 阅读 · 0 评论 -
《我的第一本c++书》学习笔记:c++之右值引用
首先,在c++语言中,有一些数值,他们只能放在等号右边,只能用于对左值赋值,这样的数值称之为右值;右值通常是一些数值变量、临时变量和无名变量等。 而对于右值引用,在c++语言中,通过运算符“&&”来声明一个右值引用,对于之前的左值引用(即我们常说的引用),通过运算符“&”来声明引用。 这相关知识又与拷贝构造函数有关。 // 1.cpp : 定义控制台应用程序的入口点。 // #incl原创 2013-08-08 20:11:25 · 1033 阅读 · 0 评论 -
《我的都一本c++书》学习笔记:STL之shared_ptr(下)
在有些情况下,使用shared_ptr管理某些特别的类型时,这些特别的类型对象的释放不是简单地使用delete关键字释放就可以完成的,需要对shared_ptr进行自定义以完成特殊的清理工作。 shared_ptr所管理的资源的清理工作都是由删除器(deleter)来完成的。shared_ptr提供了一些特殊的构造函数,这些构造函数可以指定shared_ptr删除器,从而对shared_ptr的原创 2013-08-11 17:42:37 · 963 阅读 · 0 评论 -
函数对象
// c++_1.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include #include using namespace std; //累加器 template class Accumulater { private: int *_count; T *_total; public:原创 2013-11-08 17:00:51 · 530 阅读 · 0 评论