日更2019.6.27

以后每天都学点新东西叭
日更点东西
自从上次去北京打蓝桥连个优秀奖都没拿到就很气
是自己菜也莫得办法

今儿复习下一个计算星期几的公式,堆栈,stl的基本使用
w=(d+2×m+3×(m +1)/5 +y +y/4−y/100 +y/400)%7
星期的计算公式
注意月份在1月或者2月的时候呀要变成13,14的数据

堆栈就是想象火车出入站
火车出入站
验证合法性嘛
就是弄一个栈然后看能不能返回去
s.empty()主要是防止越界,没其他意思

#include<bits/stdc++.h>
#define N 1005
using namespace std;
int a[N];
int main(){
	stack<int>s;
	int cur=1,n;
	bool f=1;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	for(int i=0;i<n;i++){
		while((s.empty()||s.top()!=a[i])&&cur<=n){
			s.push(cur++);
		}
		if(s.top()!=a[i]){
			f=0;
			break;
		}else {
			s.pop();
		}
	}
	if(f){
		printf("YES");
	}else {
		printf("NO");
	}
	return 0;
}/*
5
1 3 2 5 4
5
5 3 4 2 1
*/

关于vector的使用
在这里插入图片描述
vectorv
v.push_back()
v.pop_back()
v.size()
v.clear()
注意清空后要释放内存
vector().swap(v);

bool cmp(const int &a,const int &b)
{
if(a!=b)return a>b;
else return a>b;
}
还有cmp函数据说这么写加引用更快一点
也不懂

这个时候想起如果说vector没有释放内存
那么v.empty()是啥结果嘞

#include<bits/stdc++.h>
using namespace std;

int main(){
	vector<int>v;
	v.push_back(1);
	v.push_back(2);
	cout<<"清空前"<<v.empty()<<endl; 
	v.clear();
	cout<<"清空后"<<v.empty();
	return 0;
}

在这里插入图片描述
果然清空后empty还是1的

接下来是删除v.erase(it)或者v.erase(it1,it2),it,it1,it2都是迭代器
注意it1和it2是左闭右开的,意思就是it1迭代器指向的东西会被删掉,但是it2的不会。原因我好像看到是哪个国家的人思维习惯是左闭右开?不知道是不是扯淡

还有插入v.insert(it,value)
it是迭代器,value是插入值
注意it在哪就在那插入value

还有一个reverse的rbegin()和rend()的reverse迭代器
写的时候要用vector::reverse_iterator it=v.rbegin()

#include<bits/stdc++.h>
using namespace std;
int main(){
	vector<int>v;
	int t=0;
	v.push_back(1);
	v.push_back(2);
	v.push_back(3);
	for(vector<int>::reverse_iterator it=v.rbegin();it!=v.rend();it++){
		cout<<*it<<" ";
	}
	return 0;
}

v.resize()也很有趣
v.resize(value)就是如果value>v.size()那么就给v多分配内存,如果value<v.size()那仅保留前value个元素,但是内存依然不变
那么此时可以使用v.shrink_to_fit()把内存调到适合的大小
v.resize(value1,value2)仅在value1>v.size()的时候把后面的元素初始化为value2

v.capacity()返回v的内存,内存不一定就是他的长度

v.max_size()数值大概在1e9,有点不可思议
不是说数组都只能开到1e6到1e7嘛,极限是3.2e7
搞不懂哦

v.at(n)会自动检查是否越界,不过花的时间长一点

发布了61 篇原创文章 · 获赞 8 · 访问量 2483

猜你喜欢

转载自blog.csdn.net/weixin_43982216/article/details/93890587
今日推荐