STL
mlm5678
这个作者很懒,什么都没留下…
展开
-
逆波兰表达式及atof函数的调用
#include<iostream>#include<algorithm>#include<math.h>using namespace std; double calculate(const char *src,int flag){ double num=0.0; int n=0; int count=0; ...原创 2017-11-05 16:11:00 · 297 阅读 · 0 评论 -
OI中C++常数问题及其优化
转载的其他大神的,感觉很受用.http://blog.csdn.net/leader_one/article/details/78430083C++一些常数常见坑 I/O读入和输出 如果量小倒也没什么,如果大规模读入或者输出,C++自带的方式是很慢的 ->首先,拒绝cin/cout,实在是太慢了,受不了 ->接着scanf/printf,较慢,中小规模是可以的...转载 2018-12-22 17:16:29 · 355 阅读 · 0 评论 -
C++手动开启O2优化(以及-O -O1 -O2 -O3优化的知识点)(竞赛可用)
说白了 这是一种堆栈段优化。大概就是让编译器把所有能预处理的全算出来。牺牲编译时间换取运行时间。一般来说,如果不指定优化标识的话,gcc就会产生可调试代码,每条指令之间将是独立的:可以在指令之间设置断点,并且把获取最快的编译速度作为它的目标。当优化标识被启用之后,gcc编译器将会试图改变程序的结构(当然会在保证变换之后的程序与源程序语义等价的前提之下),以满足某些目标,如:代码大小最小或运...原创 2018-12-22 17:27:30 · 8669 阅读 · 0 评论 -
位运算面试题常用技巧
https://blog.csdn.net/shanghairuoxiao/article/details/75386508位运算是面试中的常见考题一种,位操作有~, <<, >>, &, |, ^六种。左移和右移规则对左移而言,移动正数和负数规则是相同的;对于右移而言,则有些差别,正数补0,负数补1。 举例说明: 对于一个16位的整数:0000 00...转载 2018-12-22 17:42:49 · 135 阅读 · 0 评论 -
STL 之 priority_queue 优先级队列
priority_queue 介绍priority_queue 优先队列的核心操作是支持在常量时间内获得最优先的元素。priority_queue 的难点就在于如何构造优先队列,更具体的说是如何使用自己定义的结构作为优先队列中的元素。priority_queue 对于基本类型的使用方法相对简单。他的模板声明带有三个参数,priority_queue<Type, Container, ...原创 2019-02-08 12:50:19 · 208 阅读 · 0 评论 -
C++ printf打印二进制,三进制,八进制,十六进制等(利用itoa)
printf是格式化输出函数,它可以直接打印十进制,八进制,十六进制,输出控制符分别为%d, %o, %x, 但是它不存在二进制,如果输出二进制可以调用stdlib.h里面的itoa函数。itoa函数原型为char*iota(int value,char *string,int radix);value为被转化的整数,string为转换后储存的字符数组,radix为要转换的进制数#i...转载 2019-02-27 18:57:32 · 3486 阅读 · 0 评论 -
c++大数模板
+ View code#include<iostream> #include<string> #include<iomanip> #include<algorithm> using namespace std; #define MAXN 9999#define MAXSIZE 10#define DLEN 4class Big...原创 2019-04-25 16:46:06 · 125 阅读 · 0 评论 -
C++中substr的用法
substr有2种用法:假设:string s = "0123456789";string sub1 =s.substr(5);//只有一个数字5表示从下标为5开始一直到结尾:sub1 = "56789"string sub2 =s.substr(5, 3);//从下标为5开始截取长度为3位:sub2 = "567"copy柳神的柳婼(是我最喜欢的程序员小姐姐之一)...原创 2019-05-09 02:37:40 · 11566 阅读 · 0 评论 -
getchar()的用法
c语言getchar的用法:1.从缓冲区读走一个字符,相当于清除缓冲区2.前面的scanf()在读取输入时会在缓冲区中留下一个字符'\n'(输入完s[i]的值后按回车键所致),所以如果不在此加一个getchar()把这个回车符取走的话,gets()就不会等待从键盘键入字符,而是会直接取走这个“无用的”回车符,从而导致读取有误3.getchar()是在输入缓冲区...转载 2019-05-07 16:14:39 · 81620 阅读 · 3 评论 -
ACM卡常粗谈
一、为什么要卡常数? OI中数据结构与常数优化关系很大的 如果你常数好可以暴力过数据结构题啦~ 如果你常数不好即使复杂度一样也会被出题人卡~二、常用的卡常数方法 1、卡IO(输入输出) 至于输入输出挂,我就不贴了,网上都有很多很多 2、卡编译 2.1 C++内联函数inline: 讲真,inline挺...原创 2018-12-22 17:01:08 · 1875 阅读 · 2 评论 -
C语言—句子中一个空格代替多个空格的四种方法
虽然大三的考研狗还写这样的文章挺弱智的,但写着玩呗就当练练getchar(),putchar()吧外带理解了理解EOF#include<iostream>#include<string.h>#include<algorithm>using namespace std;int main(){ int c; int number=0...原创 2018-12-21 22:14:29 · 2566 阅读 · 2 评论 -
c++ append用法
append函数是向string的后面追加字符或字符串。 1).向string的后面加C-string string s = “hello “; const char *c = “out here “; s.append(c); // 把c类型字符串s连接到当前字符串结尾 s = “hello out here”; 2).向string的后面加C-string的一部分 string s...转载 2018-12-02 14:14:10 · 828 阅读 · 0 评论 -
STL之pair类型详细分析
STL的<utility>头文件中描述了一个非常简单的模板类pair,用来表示一个二元组或元素对,并提供了大小比较的比较运算符模板函数。pair模板类需要两个参数:首元素的数据类型和尾元素的数据类型。pair模板类对象有两个成员:first和second,分别表示首元素和尾元素。在<utility>中已经定义了pair上的六个比较运算符:<、>、<...原创 2018-09-16 12:46:41 · 1919 阅读 · 0 评论 -
为什么无穷大总是0x3f3f3f3f而不是0x7fffffff?
如果问题中各数据的范围明确,那么无穷大的设定不是问题,在不明确的情况下,很多程序员都取0x7fffffff作为无穷大,因为这是32-bit int的最大值。如果这个无穷大只用于一般的比较(比如求最小值时min变量的初值),那么0x7fffffff确实是一个完美的选择,但是在更多的情况下,0x7fffffff并不是一个好的选择。且听我慢慢道来,为什摸0x7fffffff为什摸不是个好的选择 ...原创 2018-09-16 21:51:04 · 5062 阅读 · 0 评论 -
不再傻傻分不清:atoi, itoa
atoiArray to Integer 字符数组(字符串)转化为整数。golang标准库与C++标准库均有itoaInteger to Array 整数转化为字符串。golang标准库与C++标准库均有 itoa:功 能:把一整数转换为字符串用 法:char *itoa(int value, char *string, int radix);详细解释:itoa是英...原创 2018-10-12 19:32:59 · 327 阅读 · 0 评论 -
1039 Course List for Student (25 分)stl的容器套容器
1039 Course List for Student (25 分)Zhejiang University has 40000 students and provides 2500 courses. Now given the student name lists of all the courses, you are supposed to output the registered co...原创 2018-10-14 17:38:00 · 113 阅读 · 0 评论 -
lower_bound 和 upper_bound 功能和用法
其实这两个函数只能用于 “升序” 序列。#include<bits/stdc++.h>using namespace std;int main() { int a[] = {1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4}; cout << (lower_bound(a, a + 12, 4) - a) << endl...原创 2018-11-02 22:09:51 · 405 阅读 · 0 评论 -
二进制中1的个数
思路:当一个整数变为二进制(a来表示)时,它与a-1的与运算结果会使得a的末位1被抹去,反复与运算就可以使得a变为0,那么这样就可以来计算a中1的个数了。class Solution {public: int NumberOf1(int n) { int count = 0; while(n) { ...转载 2018-12-02 12:30:03 · 108 阅读 · 0 评论 -
深入理解字符串处理函数 strlen() strcpy() strcat() strcmp()
在linux C 编程中,我们经常遇到字符串的处理,最多的就是字符串的长度、拷贝字符串、比较字符串等;当然现在的C库中为我们提供了很多字符串处理函数。熟练的运用这些函数,可以减少编程工作量,这里介绍几个常用的字符串函数,并编写一些程序,如果没有这些库函数,我们将如何实现其功能;1.求字符串长度函数 strlen头文件:string.h 函数原型:size_t strlen(const ch...转载 2018-12-02 14:00:21 · 946 阅读 · 0 评论 -
c函数strcpy() ,strcat(),strcmp(), strlen(), strchr() ,strstr() 使用整理
1.strcpy()功能: 字符串复制头文件: string.h返回值类型: char*C语言标准库函数strcpy,把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间。原型声明:char *strcpy(char* dest, const char *src);头文件:#include <string.h> 和 #i...转载 2018-12-02 14:11:02 · 285 阅读 · 0 评论 -
STL unique()去重函数
unique是STL中很实用的函数之一,需要#include<algorithm>,下面来简单介绍一下它的作用。unique的作用是“去掉”容器中相邻元素的重复元素,这里去掉要加一个引号,为什么呢,是因为它实质上是一个伪去除,它会把重复的元素添加到容器末尾,而返回值是去重之后的尾地址(是地址!!)int num[10]={1,1,2,2,2,3,4,5,5,5};int...原创 2018-08-16 18:28:24 · 371 阅读 · 0 评论