![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL
酸菜鱼的鱼
Linux rtos 驱动应用开发 本博客主要用于工作学习的总结和备份,欢迎大家留言评论交流,谢谢
展开
-
c++中函数对象的理解以及bind1st和bind2nd的使用
本文主要介绍了c++中函数对象的基本概念,以及stl中自带的常用的函数对象(包括一元函数对象和二元的函数对象)。然后以binder1st和binder2nd为例以代码为示例,简单的使用方法。然后为了加深对函数对象的理解,自己根据类模板和函数模板编写了一个test_binder1st类模板和test_bind1st函数模板,用以实现stl中binder1st和bind1st的功能。目录函数对...原创 2020-02-16 14:16:01 · 1046 阅读 · 1 评论 -
c++中智能指针auto_ptr的简介以及使用方法
auto_ptr保证在异常被抛出时,分配的对象能够自动消费,内存能够自动释放。使用auto_ptr可以代替指针进行操作,并且不关心内存的释放。解决内存溢出的问题。下面的程序包括auto_ptr一个简单的示例一级自定义的一个类模板smart_pointer,以便链接智能指针的底层实现的原理:测试源代码#include "stdafx.h"#include <iostream&...原创 2020-02-15 23:45:38 · 402 阅读 · 0 评论 -
c++中STLvector的erase方法和algorithm中的remove使用上的一些区别
有下面的示例程序可以看出,电泳erase删除一个元素后,相对应的元素被删除,并且容器中的元素也随之减少了一个,迭代器不能访问。调用algorithm中的remove删除后相对应的元素被删除,但是容器中的元素个数没有变少,并且删除后容器后面的元素往前移动一个位置,并且最后的元素的值,是用之前最后一个元素的值填充。并且remove返回的迭代器位置是最后一个元素的位置。algorithm中的re...原创 2020-02-14 17:55:10 · 779 阅读 · 0 评论 -
C++里面的算法reverse转置的使用以及STL中deque容器的转置使用示例
reverse是全局函数模板,不是一个类中的成员函数。reverse的参数:一个是指向要操作的范围头指针,第二个参数是指向尾的指针。以下的示例程序分别使用reverse函数对数组data和容器vector<string> v1做了转置,其中需要注意的是reverse中的参数的不同。STL中的deque中自带了转置的迭代器:deque<int>::iterator...原创 2020-02-14 16:45:43 · 807 阅读 · 0 评论 -
c++ STL中的map的简单介绍和示例
map的介绍标准的STL关联程序(set,map,multset,multmap)的内部结构是平衡二叉树。平衡二叉树分为:avl-tree,rb-tree,aa-tree。STL的底层机制都是以RB-tree(红黑树)实现的。RB-tree是一个不被外界使用的容器。所以map的底层是以红黑树实现的,注意和hashmap的区分。map底层是红黑树,hashmap底层是hash表。之前在高...原创 2020-02-13 22:39:22 · 219 阅读 · 0 评论 -
C++中STL的set的简单示例
使用如下代码演示了,一个set的string类型的容器中元素的插入,删除和遍历操作。#include "stdafx.h"#include <iostream>#include <set>#include <string>using namespace std;int main(int argc, char *argv[]){ set&...原创 2020-02-13 17:19:03 · 188 阅读 · 0 评论 -
c++中使用stl中的vector 将一个文件中的整形数据排序并将排序后的数据存入到另一个文件中(bubble sort)
将数据读出到vector中的一个容器data中: vector<int> data; ifstream in_data("D:\\data.txt");//open the target file if (!in_data){ cout << "input file error" << endl; return 1; } int tem...原创 2020-02-13 11:42:09 · 874 阅读 · 0 评论 -
STL中vector和list的概念和使用方法上的差异
vector介绍vector和数组类似,可以支持使用[]的方法随机存取,拥有一段连续的内存空间,并且内存的起始地址不变。就像数组一样由于他的内存空间是连续的,所以在插入删除的时候,会造成内存的拷贝,当该内存空间不够时,需要重新申请一块足够大的内存,并将数据拷贝到新的内存空间中,然后再释放之前较小额那块内存。list介绍list是由数据结构中双向链表的方式实现的,因此内存空间不连续。所...原创 2020-02-12 16:59:28 · 411 阅读 · 0 评论