- 博客(12)
- 资源 (3)
- 收藏
- 关注
原创 C++的 remove函数
一、介绍remove函数会将范围内所有等于val的值移动位置remove函数在STL中的源代码如下template <class ForwardIterator, class T> ForwardIterator remove (ForwardIterator first, ForwardIterator last, const T& val){ ForwardIterator result = first; while (first!=last) {
2021-01-31 11:41:01 7386 6
原创 C++string的erase
不是很清楚C++中string如何删除元素,现在记录一下。一、介绍erase一共三种用法:erase(size_type pos=0, size_type n=npos):删除从下标pos开始的n个字符,比如erase(0,1)就是删除第一个字符(默认删除全部字符) erase( std::iterator position):删除postion处的一个字符(position是一个string类型的迭代器) erase(std::iterator first,std::iterator ..
2021-01-31 11:13:50 1295
原创 C++的std::transform
一、介绍头文件:<algorithm>std::transform在指定的范围内应用于给定的操作,并将结果存储在指定的另一个范围内。以下是std::transform的两个声明,一个是对应于一元操作,一个是对应于二元操作:template <class InputIterator, class OutputIterator, class UnaryOperation> OutputIterator transform (InputIterator first1,
2021-01-23 15:05:31 1178 1
原创 C++的std::multiplies
一、介绍std::multiplies是乘法的二元函数对象。常被用于std::transform或者std::accumulate等的运算算子。template <class T> struct multiplies { T operator() (const T& x, const T& y) const {return x*y;} typedef T first_argument_type; typedef T second_argument_type;
2021-01-23 14:47:36 2959
原创 C++的std::bind1st和std::bind2nd
一、介绍头文件:fuctionalstd::bind1st和std::bind2nd函数用于将一个二元算子转换成一元算子。bind的意思是“绑定”,1st代表first,2nd代表second,它们的声明如下:
2021-01-23 11:09:08 2388
原创 STL mismatch算法
一、介绍mismatch算法:找到两个容器里面,第一个值不相等的元素,并返回指向二个不相等元素的迭代器的 std::pair。template <class InputIterator1, class InputIterator2> pair<InputIterator1, InputIterator2> mismatch (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2
2021-01-21 09:01:25 385
原创 C++ 的not1与not2
一、介绍not1是构造一个与谓词结果相反的一元函数对象。not2是构造一个与谓词结果相反的二元函数对象。二、用法not1// not1 example#include <iostream> // std::cout#include <functional> // std::not1#include <algorithm> // std::count_ifstruct IsOdd {//是否为奇数 bool operato
2021-01-21 08:42:39 3901
转载 字符串转换整数——一个简单的题目
一、题目二、自动机本题看着简单,拿到手却不好做。思路:字符串处理的题目往往涉及复杂的流程以及条件情况,如果直接上手写程序,一不小心就会写出极其臃肿的代码。因此,为了有条理地分析每个输入字符的处理方法,我们可以使用自动机这个概念:我们的程序在每个时刻有一个状态 s,每次从序列中输入一个字符 c,并根据字符 c 转移到下一个状态 s'。这样,我们只需要建立一个覆盖所有情况的从 s 与 c 映射到 s' 的表格即可解决题目中的问题。class Automaton { .
2021-01-09 15:33:35 263
原创 C++string去除前后空格
去除字符串的空格,C#里面直接使用trim()函数,C++里需要进行一些处理,这里介绍几种方法一、去除前空格string str = " sshah hha ";str.erase(str.begin(), std::find_if(str.begin(), str.end(), std::not1(std::ptr_fun(::isspace)))); cout << str << endl;二、去除后空格string str = " ss
2021-01-09 15:10:00 12782 1
转载 路径总和II——深度优先与广度优先的实践
一、题目给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22,二、题解注意到本题的要求是,找到所有满足从「根节点」到某个「叶子节点」经过的路径上的节点之和等于目标和的路径。核心思想是对树进行一次遍历,在遍历时记录从根节点到当前节点的路径和,以防止重复计算。2.1深度优先搜索我们可以采用深度优先搜索的方式,枚举每一条从根节点到叶子节点的路径。当我们遍历到叶子节点,
2021-01-08 08:47:13 200
原创 保护模式下分页
一、背景分段机制我们已经再熟悉不过了,前面我们学习过的所有内容都是在分段的机制下工作的。对于一个多任务系统。如果任务比较多,很有可能导致物理内存不够分配的情况。这个时候,操作系统的作用就体现出来了。每个段的描述符都有一个TYPE字段。其中有一个A位,每当访问一个段时,该段的A位就记录该段最近是否被访问过。当一个段很长时间不被访问,操作系统就去将该段从内存中移出去,移到磁盘。从而可以空出一块空闲的内存空间可以供其他程序的段来运行。当这个段页不怎么被访问了,操作系统用同样的方法将其移出去,再加载另一个需要
2021-01-01 10:39:05 365
HalconShowTest (1) (1).zip
2020-06-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人