【代码模板】不存在的NOIP2017
【摘要】
虽然可能没机会参加NOIP2017的复赛了 但是这份模板我还是会在比赛前完成它的, 作为对我过去一年的反馈。
因为技能树点歪,,所以我会弃坑重新来点, 辣么,,模板题的理解就很重要,他直接决定了其他的题...
虽然可能没机会参加NOIP2017的复赛了
但是这份模板我还是会在比赛前完成它的,
作为对我过去一年的反馈。
因为技能树点歪,,所以我会弃坑重新来点,
辣么,,模板题的理解就很重要,他直接决定了其他的题目你写不写的来。。
所以,这里的许多东西也许没办法在OJ上直接验证正确性(这也是打模板的痛苦之处)
不过我会尽力去找的,并且也会把自编的数据存放下来。
就酱紫。
frame
//这个项目提供了程序基本的代码框架
//头文件模板
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cctype>
#include<iomanip>
#include<sstream>
#include<cmath>
#include<string>
#include<vector>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<bitset>
#include<list>
//命名空间
using namespace std;
//声明与宏定义
typedef long long LL;
typedef long double LD;
#define fst first
#define sec second
#define mp make_pair
//常量定义
const int N = 1e5, inf = 1e9; //代替define的写法 & e计数法的使用
//输入输出优化
int readint(){ //readint好简单啊为什么。。。
int x=0, op=1; char ch = getchar(); //一定要赋初始值
while(ch < '0' || ch > '9'){ if(ch=='-')op=-1; ch = getchar(); }
while(ch >= '0' && ch <= '9'){ x=x*10+ch-'0'; ch = getchar(); }
return x*op;
}
int main(){
cout<<"Hello World"<<endl;
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
STL
//这个项目提供了STL的范例
//NOIP前第一轮模板 2017.10.5
//顺序容器:vector, deque, list
//关联容器:set, map,
//适配容器:stack, queue, priority_queue
#include<iostream>
#include<set> //基于红黑树
#include<map> //基于平衡二叉树
#include<vector> //时间换空间(逃
#include<string> //各种黑科技
#include<bitset>
using namespace std;
//操作整理:声明,插入,删除,查找,遍历
//用法整理:你自己想啊
void setting(){
set<int>myset; //声明int类型的集合(突然发现重名好像不会炸233333)
//1. 基本操作
myset.insert(233); //往里面添加元素(重复插入无效)
myset.erase(233); //删除里面的某个元素(如果不存在该元素则不操作)(这里也可以用迭代器删除区间)
myset.count(233); //查询集合中是否存在某个元素
myset.clear(); //清空集合
//2. 迭代器
myset.insert(233); myset.insert(322);
set<int>::iterator it; //如果重名声明迭代器的时候会炸掉
set<int>::reverse_iterator rit; //反向迭代器
for(it = myset.begin(); it != myset.end(); it++){
cout<<*it<<" ";
}
cout<<"\n";
for(rit = myset.rbegin(); rit != myset.rend(); rit++){
cout<<*rit<<" ";
}
cout<<"\n";
//3. 熟练搞事
cout<< (myset.find(233)==myset.begin()) <<" \n"; //查找键值的位置并返回迭代器
cout<< *myset.lower_bound(234)<<"\n"; //返回第一个>=key的元素的迭代器
cout<< *myset.upper_bound(233)<<"\n"; //返回第一个>key的元素的迭代器
}
void maping(){
map<int,int>mymap; //左键右值
//1. 基本操作,,同为关联容器,基本和set差不多吧
mymap[5] = 7; //添加元素(注意 "mymap[0];" 同样往map中添加了元素,只是没有赋值而已)
//2. 迭代器
map<int,int>::iterator it = mymap.begin();
cout<<(it->first)<<" "<<(it->second)<<"\n"; //map遍历时访问的是pair类型
//3.
}
void bitsetting(){
}
void stringing(){
string str = "123456789"; char ch[110]="233";
//构造函数
str = string(ch); //用c语言字符串s初始化
str = string(5,'c'); //用5个字符c初始化
string s1 = str; //赋值操作
//基本特性
str.size(); //返回大小
//各种操作
str.substr(0, 2); //返回子串,返回0开始的由两个字符组成的字符串
}
int main(){
stringing();
cout<<"Hello World"<<endl;
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
文章来源: gwj1314.blog.csdn.net,作者:小哈里,版权归原作者所有,如需转载,请联系作者。
原文链接:gwj1314.blog.csdn.net/article/details/83046220
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)