自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(149)
  • 收藏
  • 关注

原创 rotate

#include <algorithm>#include <iostream>#include <string>#include <vector>using namespace std;int main(){ vector<string> words{ "five","six","seven","eight","nine","ten","one","two","three","four", }; auto iter.

2021-08-04 19:27:22 116

原创 next_permutation和prev_permutation

next_permutation用于生成当前序列的下一个排列组合,如果当前序列是最大值则返回false;prev_permutation用于生成当前序列的上一个排列组合,如果当前序列是最小值则返回false。#include <algorithm>#include <iostream>#include <string>#include <vector>using namespace std;int main(){ vector

2021-08-04 18:38:15 108

原创 equal

equal用于比较两个序列是否相等,也可以自定义比较条件;如果两个序列的长度不相等则返回false;如果B序列的长度比A序列大,可以不用指定B序列的结束位置;如果A序列的长度比B序列大,则需要指定A序列的结束位置,使AB序列的长度相等。#include <algorithm>#include <iostream>#include <string>#include <vector>using namespace std;bool

2021-08-04 14:59:34 151

原创 all_of、any_of、none_of

all_of用于判断指定范围内的元素是否都满足条件;any_of用于判断指定范围内的元素是否至少有一个满足条件;none_of用于判断指定范围内的元素是否都不满足条件。#include <algorithm>#include <iostream>#include <string>#include <vector>using namespace std;int main(){ vector<int> v{ 1,9

2021-08-04 14:15:00 346

原创 binary_search

binary_search用于在指定范围内查找某个元素是否存在;在指定的范围中,被查找元素的所有左边元素必须满足指定条件,被查找元素的所有右边元素必须不满足指定条件。#include <algorithm>#include <iostream>#include <string>#include <vector>using namespace std;bool comp(int i, int j) { return i < j; }

2021-08-04 13:51:18 84

原创 equal_range

equal_range用于在指定范围内查找所有符合条件的元素;默认条件下,被查找元素的所有左边元素必须小于被查找元素,被查找元素的所有右边元素必须大于被查找元素。#include <algorithm>#include <iostream>#include <string>#include <vector>using namespace std;bool comp(int i, int j) { return i < j; }b

2021-08-04 12:00:31 71

原创 partition_point

partition_point用于在已经分好组的序列中,查找分组的分界点,返回不满足条件的分组中的第一个元素的位置。#include <algorithm>#include <iostream>#include <string>#include <vector>using namespace std;bool comp(int i) { return i < 5; }int main(){ vector<int&g

2021-08-03 17:53:59 140

原创 partition_copy

partition_copy可以根据指定条件,把容器中的元素分成两组,并把分组拷贝到新的容器中;该函数返回一个 pair 类型值,其中包含 2 个迭代器,第一个迭代器指向第一个分组的最后一个元素在新容器中的位置,第二个迭代器指向第二个分组的最后一个元素在新容器中的位置。#include <algorithm>#include <iostream>#include <string>#include <vector>using namespac

2021-08-03 17:32:48 96

原创 partition

partition可以根据指定条件,把容器中的元素分成两组,返回第二组中第一个元素在已完成分组中的位置;patition是不稳定分组,stable_partition是稳定分组。#include <algorithm>#include <iostream>#include <string>#include <vector>using namespace std;bool comp(int i) { return i >= 5; }

2021-08-03 17:04:57 58

原创 search_n

search用于在序列A中查找满足条件的序列B,返回序列B在序列A中第一次出现的位置;如果序列B的元素都相等,那么可以使用search_n代替search实现查找;#include <algorithm>#include <iostream>#include <string>#include <vector>using namespace std;int main(){ vector<int> v{ 1,2,4,5

2021-08-03 16:42:36 58

原创 search

search用于在序列A中查找满足条件的序列B,返回序列B在序列A中第一次出现的位置。#include <algorithm>#include <iostream>#include <string>#include <vector>using namespace std;bool searchComp(int i, int j) { return i == j; }bool searchComp2(int i, int j) { retu

2021-08-03 16:31:19 80

原创 adjacent_find

adjacent_find用于在指定范围内查找1个连续出现2次的元素。#include <algorithm>#include <iostream>#include <string>#include <vector>using namespace std;int main(){ vector<int> v{ 1,2,2,4,5,2,3,4,7,8,9,1,7,7,3,4 }; auto it = adjace

2021-08-03 16:24:44 78

原创 find_first_of

find_first_of用于在序列A中查找某个元素,该元素至少和序列B中的一个元素存在满足指定条件的情况。#include <algorithm>#include <iostream>#include <string>#include <vector>using namespace std;bool findComp(int i, int j) { return i == j; }bool findComp2(int i, int j.

2021-08-03 15:20:36 98

原创 find_end

find_end用于在序列A中查找满足条件的序列B,返回序列B在序列A中最后出现的位置。#include <algorithm>#include <iostream>#include <string>#include <vector>using namespace std;bool findComp(int i, int j) { return i > j; }int main(){ vector<int>

2021-08-03 14:45:25 55

原创 find_if和find_if_not

1、find_if在查找条件为true时,返回元素的位置;2、find_if_not在查找条件为false时,返回元素的位置;#include <algorithm>#include <iostream>#include <string>#include <vector>using namespace std;bool findComp(int i) { return i > 8; }int main(){ vect

2021-08-03 11:57:10 90

原创 merge和inplace_merge

1、merge用于将2个有序序列合并成1个有序序列,并存储到新的容器中;2、如果2个有序序列存储在同一个容器中,可以用inplace_merge进行合并,并替换原有的容器;3、被合并的序列必须同为升序或降序,如果被合并序列为升序,则比较函数返回第一个参数大于第二个参数,如果被合并序列为降序,则比较函数返回第一个参数小于第二个参数,;#include <algorithm>#include <iostream>#include <string>#incl

2021-08-03 11:29:17 320

原创 nth_element

将第n大元素放在序列第n个位置,且该位置的左边元素都小于该元素,该位置的右边元素都不小于该元素。#include <algorithm>#include <iostream>#include <string>#include <vector>using namespace std;int main(){ vector<int> v{ 9,2,7,3,1,6,8,4,5,2,4 }; nth_element(v.

2021-08-02 20:00:39 47

原创 sort和stable_sort

sort是不稳定排序,即经过排序之后,相同值的元素在序列中的相对位置可能发生改变。stable_sort是稳定排序,即经过排序之后,相同值的元素在序列中的相对位置不会发生改变。两者默认都是升序排序,可以通过自定义比较函数,也可以重载元素的<运算符,达到升降排序的目的。#include <algorithm>#include <iostream>#include <string>#include <vector>using na..

2021-08-02 19:23:02 838

原创 lower_bound和upper_bound

1、lower_bound查找非递减序列中第一个大于等于某个元素的位置;2、upper_bound返回非递减序列中第一个大于某个元素的位置;如果查找的元素不是基本数据类型,可以通过自定义函数进行查找,注意比较函数都是返回第一个参数小于第二个参数。#include <algorithm>#include <iostream>#include <string>#include <vector>using namespace std;

2021-08-02 16:56:20 76

转载 四天精通shell编程(四)--完结篇

五流程控制2 for语句1)使用in关键字循环根据变量的不同取值,重复执行一组命令操作格式:for变量名 in取值列表do命令序列done例子11:循环#相对来说这种循环机制更适用于系统管理,这就联系到了,现在有各种各样的编程语言的现象!#!/bin/bashfort

2015-05-13 11:24:08 595

转载 四天精通shell编程(三)

四 条件测试test 测试条件 测试内容[测试条件 测试内容] #用的更为广泛1 测试文件类型test -e 文件名 测试文件是否存在,存在为真[ -e 文件名 ] 注意:[]的左右两侧必须加空格!附:test测试结果并不显示,需用echo$? 来显示test的返回值返回0语句正确,非0表示

2015-05-13 11:21:11 685

转载 四天精通shell编程(二)

二 变量5 位置参数变量$0命令自己$1 第一个参数$2 第二个参数$9 第九个参数例2:输出位置参数变量,脚本后要接参数#!/bin/bashecho"the command is $0"echo"canshu1 is $1"echo"canshu2 is $2"6

2015-05-13 11:20:29 680

转载 四天精通shell编程(一)

沈超:微博:weibo.com/lampsc一 shell简介1 概念命令解释器2 常见shellbash linux标准shell附:她保存在/etc/bash里面,是一个二进制可执行文件,所以不能直接:vim/bin/bash 会是乱码sh 早期shell,较简单csh(UNIX

2015-05-13 11:19:14 1418

原创 【Objective-C学习-11】NSArray的排序

//Student.h#import @interface Student : NSObject@property (nonatomic, retain) NSString *firstName;@property (nonatomic, retain) NSString *lastName;+ (id)studentWithFirstname:(NSString *)firstn

2015-05-04 23:02:45 539

原创 【Objective-C学习-10】NSArray的遍历

//main.m#import int main(int argc, const char * argv[]) { @autoreleasepool { NSArray *array = [NSArray arrayWithObjects:@"1", @"2", @"3", nil]; NSLog(@"%@", array);

2015-05-04 22:02:09 316

原创 【Objective-C学习-9】Foundation常用结构体

(1)NSRangeNSRange的定义:typedef struct _NSRange { NSUInteger location; NSUInteger length;}NSRange;NSRange用来表示一个字符串或集合的范围,其中location表示范围的起始索引,length表示范围的长度。NSRange变量的赋值:NSRange range =

2015-05-04 20:45:25 350

原创 【Objective-C学习-8】Block

学习Block之前,我们先了解下匿名函数和闭包性的概念。匿名函数实际上是一个没有名字或者标示的函数,匿名函数只有内容,我们可以将其存储在一个变量中,或者将其当做一个参数传递给另一个函数使用。闭包性是允许一个函数访问其所声明上下文中的变量,甚至是在不同的运行上下文中。Block的定义:int (^SumBlock) (int, int) = ^(int a, int b) {

2015-05-04 20:08:32 296

原创 【Objective-C学习-7】Protocol

Protocol简单来说就是一系列不属于任何类的方法列表,其中声明的方法可以被任何类实现。这种模式一般称为代理(delegation)模式。在iOS和OS X开发中,Apple采用了大量的代理模式来实现MVC中View和Controller的解耦。定义Protocol很简单,在.h文件中通过关键字@protocol定义,然后给出Protocol的名称,方法列表,然后用@end表示Proto

2015-05-04 01:11:53 412

原创 【Objective-C学习-6】Category

Category可以动态的为已经存在的类添加新的行为,但不能添加成员变量。这样可以保证类的原始设计规模较小,功能增加时再逐步扩展。使用Category对类进行扩展时,不需要创建子类。Category使用简单的方式,实现了类的相关方法的模块化,把不同的类方法分配到不同的分类文件中。假设有一个Student类,现在需要在不修改原始类、不增加子类的情况下,给Student类添加一个test方

2015-05-03 20:19:28 342

原创 【Objective-C学习-5】@property参数详解

@property参数分为3类:读写属性:readwrite/readonlysetter处理:assign/retain/copy原子性:atomic/nonatomicreadwrite表示生成getter和setter方法,默认类型;readonly表示只生成getter方法;assign表示直接赋值,适合内置数据类型,默认类型;retain表示在sett

2015-05-03 18:36:58 346

原创 【Objective-C学习-4】OC内存管理

(1)当使用alloc、new或者copy创建一个对象时,对象的引用计数器被设置为1;(2)给对象发送一条retain消息,对象的引用计数器+1;(3)给对象发送一条release消息,对象的引用计数器-1;(4)当一个对象的引用计数器的值为0时,OC会自动发送一条dealloc消息,收回其占用的内存,所以一般需要重写dealloc方法,释放相关资源;(5)可以给对象发送retai

2015-05-02 05:07:40 419

原创 【Objective-C学习-3】@property和@synthesize

#import @interface Person : NSObject { //int _age;}//当编译器遇到@property时,会自动展开成getter和setter的声明@property int age;//- (int)age;//- (void)setAge:(int)newAge;- (void)test;@end#import

2015-05-02 02:42:28 311

原创 【Objective-C学习-2】OC类

一、类的声明 //Person.h#import @interface Person : NSObject { /*成员变量声明在类的内部 *成员变量默认可访问属性为 @Protected *OC中自定义的类或系统类对象都必须是一个指针 */ NSString *_name; NSString *_idNo; int _age;

2015-05-02 01:14:15 280

原创 【Objective-C学习-1】第一个OC程序

#import int main(int argc, const char *argv[]) { @autoreleasepool { NSString *str = [[NSString alloc] init]; str = @"Hello World!"; NSLog(@"%@", str); [str autorelease]; } r

2015-05-02 01:06:58 252

原创 awk简单教程

有一张表 qqinfo.txtSeq  QQ      Age  Sex       From01    12345  20    male     guangdong,shenzhen02    23456  21    female  sichuan,chengdu03    34567  19    female  fujian,fuzhou04    45678  22

2015-04-22 17:52:10 498

转载 实际用户ID,有效用户ID及设置用户ID

看UNIX相关的书时经常能遇到这几个概念,但一直没有好好去理清这几个概念,以致对这几个概念一直一知半解。今天好好区分了一下这几个概念并总结如下。说白了这几个UID引出都是为了系统的权限管理。     下面分别用RUID, EUID,SUID来表示实际用户ID,有效用户ID,设置用户ID。另外用户ID是个整型数,为了说明方便真接使用了用户名来代表不同的UID。先解释一下这几个ID的作用:

2015-04-21 14:17:42 351

转载 IO - 同步,异步,阻塞,非阻塞

同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不

2015-04-21 10:38:15 336

转载 epoll源码实现分析

epoll用法回顾先简单回顾下如何使用C库封装的3个epoll相关的系统调用。更详细的用法参见http://www.cnblogs.com/apprentice89/archive/2013/05/06/3063039.htmlint epoll_create(int size);int epoll_ctl(int epfd, int op, int fd, struct epoll_

2015-04-21 10:35:43 511

转载 linux select多路复用机制

函数作用:系统提供select函数来实现多路复用输入/输出模型。select系统调用是用来让我们的程序监视多个文件句柄的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有一个或多个发生了状态改变。关于文件句柄,其实就是一个整数,我们最熟悉的句柄是0、1、2三个,0是标准输入,1是标准输出,2是标准错误输出。0、1、2是整数表示的,对应的FILE *结构的表示就是stdin、

2015-04-21 10:34:28 344

原创 链表题目小结

1. 求单链表中节点的个数2. 将单链表反转3. 查找单链表中的倒数第K个节点(k > 0)4. 查找单链表的中间节点5. 从尾到头打印单链表6. 已知两个单链表pHead1 和pHead2 各自有序,把它们合并成一个链表依然有序7. 判断一个单链表中是否有环8. 判断两个单链表是否相交9. 求两个单链表相交的第一个节点10. 已知一个单链表中存在环,求进入环中

2015-04-19 22:14:52 580

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除