6 奇怪的苏苏苏

尚未进行身份认证

我要认证

BUPTer

等级
TA的排名 30w+

【C++学习纪录】常用查找算法

一、概述find //查找元素find_if //按条件查找元素adjacent_find //查找相邻重复元素binary_search //二分查找count //统计元素个数count_if //按条件统计元素个数二、find ( iterator beg, iterator end, value)// 按值查找元素,找到即返回指定位置迭代器,找不到返回end()// beg开始迭代器, end结束迭代器, value是待查找元素#include<iostream>

2020-08-01 07:17:04

【C++学习纪录】常用遍历算法

一、算法概述算法头文件主要是由< algorithm> < functional> < numeric>组成< functional> 定义了一些模板类,用以声明函数对象< numeric>体积很小,只包括几个序列上面进行简单数学运算的模板函数< algorithm>是所有STL头文件中最大的一个,范围涉及到比较、交换、查找、遍历操作、复制、修改等。二、常用遍历算法1、for_each ( iterator beg, i

2020-08-01 06:15:20

【C++学习纪录】内建函数对象——逻辑仿函数

template< class T> bool logical_and< T> //逻辑与template< class T> bool logical_or< T> //逻辑或template< class T> bool logical_note< T> //逻辑非#include<iostream>#include<functional>#include<vector>#incl.

2020-07-31 15:42:55

【C++学习纪录】内建函数对象——关系仿函数

函数原型:template< class T> bool equal_to< T> //等于template< class T> bool not_equal< T> //不等于template< class T> bool greater< T> //大于template< class T> bool greater_equal< T> //大于等于template< class T>

2020-07-31 15:31:21

【C++学习纪录】内建函数对象——算术仿函数

在使用内建对象之前,需要引入头文件#include< functional>算术仿函数的原型有:template

2020-07-31 15:04:41

【C++学习纪录】map容器基础

map/multimap容器中所有的元素都是pair,即对组。pair中的第一个值为key值,第二个值为value实值。所有元素都会根据key值进行默认的升序排序。map容器的优点在于可以根据key值快速地找到value值。在map容器中,不允许有重复的key值;而在multimap中是允许的。一、基本语法#include<iostream>#include<map>using namespace std;int main(){ //第一种常用构造方法

2020-07-30 23:25:12

【C++学习纪录】set容器——使用仿函数改变排序

set容器默认是以升序方式对数据进行排序。若要改变它的排序方式,应在创建容器变量时使用仿函数。一、简单地对数据进行降序排序#include<iostream>#include<set>using namespace std;//写仿函数,重载括号运算符,放在类中。class temp{ public: //注意,是bool类型 bool operator()(const int num1, const int num2) {

2020-07-30 20:54:22

【C++学习纪录】set容器——基本概念 & 插入函数 & 计数函数

一、set容器和multiset容器都会在数据插入时对数据进行排序,底层是二叉树结构。使用二者前需include同一个头文件< set >二、set容器不允许重复的数据出现,而multiset容器允许。三、向set容器和multiset容器中插入数据使用的是类的成员函数insert()其中,两种容器insert函数返回值不相同。#include<iostream>#include<set>using namespace std;int main(){

2020-07-30 20:27:48

【C++学习纪录】pair对组的创建

在出现成对出现的数据时,可以利用pair对组实现两个数据的返回。两种创建方式:一、 pair<type, type> p (value, value)二、pair<type, type> p = make_pair(value, value)#include<iostream>#include<string>using namespace std;int main(){ //方法一 pair<int, string&gt

2020-07-30 19:57:08

【C++学习纪录】list容器——迭代器 & 反转 & 排序

一、list容器的迭代器1、list容器的迭代器是不支持随机访问的。它是双向迭代器。2、这意味着:假设p1、p2是list迭代器,p1++、++p1、p1–、--p1、p1 == p2这样的操作是合法的,而p1 += num不合法。3、若p是一个list容器,通过p[num]的方式访问数据是不合法的。二、reverse( ) 反转函数#include<iostream>#include<list>using namespace std;void printList(

2020-07-30 16:12:36

【C++学习纪录】vector函数——预留空间

可使用reserve(int len)函数为容器预留len个元素长度,这样做可减少vector在动态扩展容量时的扩展次数。预留位置不初始化,元素不可访问。#include<iostream>using namespace std;#include<vector>int main(){ vector<int> v; v.reserve(10); cout << "capacity: " << v.capacity

2020-07-28 20:24:06

【C++学习纪录】vector容器——利用swap函数缩小空间

容器互换函数swap(vec)用于实现两个容器内的元素进行互换一、普通用法#include<iostream>using namespace std;#include<vector>void printVector(vector<int> &v) { for (vector<int>::iterator it = v.begin(); it != v.end(); it++) { cout <<

2020-07-28 20:18:47

【C++学习纪录】vector容器——数据的存取

1、at(int index) 返回索引index所指的数据2、operator[ ] 返回索引index所指的数据3、front() 返回容器中第一个数据元素4、back() 返回容器中最后一个数据元素#include<iostream>using namespace std;#include<vector>void printVector(vector<int> &v) { for (vector<int>::iterat

2020-07-28 19:50:21

【C++学习纪录】vector容器——插入和删除

1、push_back(elem) 尾部插入元素elem2、pop_back() 删除最后一个元素3、insert(const_iterator pos, elem) 向迭代器指向的位置插入elem4、insert(const_iterator pos, int count, elem) 向迭代器指向位置插入count个elem5、erase(const_iterator pos) 删除迭代器指向的元素6、erase(const_iterator start, const_iterator end

2020-07-28 18:24:48

【C++学习纪录】vector容器——容量与大小

1、empty() 判断容器是否为空。为空返回真,不为空返回假。2、capacity() 返回容器的容量3、size() 返回容器中元素的个数。元素个数不一定等于容器容量。4、resize(int num) 重新指定容器的长度为num。若容器变长,以默认值0填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。5、resize(int num, elem) 重新指定容器的长度为num。若容器变长,以elem值填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。...

2020-07-28 18:03:39

【C++学习纪录】vector容器——构造函数&赋值操作

1、vector v; 采用模板类实现,无参构造2、vector(v.begin(), v.end()); 将v[begin(), end())区间的元素拷贝3、vector(n, elem) 将n个elem拷贝给本身4、vector(const vector &vec) 拷贝构造函数#include<iostream>using namespace std;#include<vector>void printVector(vector<int> &

2020-07-28 15:25:03

【C++学习纪录】string容器——截取子串

函数原型:string substr(int pos, int n) const 返回由pos开始的n个字符组成的字符串一、简单截取#include<iostream>using namespace std;#include<string>int main(){ string str("hello world"); string temp = str.substr(6, 5); cout << temp << endl;

2020-07-28 14:57:19

【C++学习纪录】string容器——插入和删除

1、string &insert(int pos, const char *s) 插入字符串2、string &insert(int pos, const string &str) 插入字符串3、string &insert(int pos, int n, char c) 在指定位置插入n个字符c4、string &erase(int pos, int n) 删除从pos开始的n个字符一、插入字符串#include<iostream>using

2020-07-28 14:44:16

【C++学习纪录】string容器——字符存取与修改

在string容器中,字符存取和修改有两种方法:1、char &operator[ ] (int n) 通过[ ]方式取字符2、char &at(int n) 通过at函数获取字符一、获取字符:#include<iostream>using namespace std;#include<string>int main(){ string str("hello world"); //第一种方式 cout << str[

2020-07-28 14:28:24

【C++学习纪录】string容器——字符串比较

1、int compare(const string &s) const 与字符串s作比较2、int compare(const char *s) const 与字符串s作比较一、当两个字符串相等时,输出0.#include<iostream>using namespace std;#include<string>int main(){ string str1("hello world"); string str2("hello world");

2020-07-28 14:16:36

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。