用STL打ACM

文章说明

ACM目前可以用c,c++,java三种语言(蓝桥杯现在又开了python 2019),像我这种C++文件头c语言风格出身的人,在接触过python后就想多蹭蹭STL的好处了。STL用好了会非常的方便。
这是我通过不断学习所总结出来的一些注意事项和知识点。将持续更新(TODO)

count()

解释

首先这个函数需要 <algorithm>文件头
它的格式是count(begin(),end(),value)如

#include <iostream>
#include <algorithm>
#include <vector>
vector<string> v;
int main()
{
	v.push_back("asdf");//在容器v后端插入数据
	v.push_back("asdf");
	v.push_back("affff");
	cout<<count(v.begin(),v.end(),"asdf")<<endl;//输出2
	return 0;
}

注意

count它不是一个内置函数,不像python那样。

iterator

解释

这是一个迭代器可用于容器们的遍历
注意它的类型要和容器的类型一样

#include <iostream>
#include <algorithm>
#include <vector>
vector<string> v;
vector<string>::iterator it;
int main()
{
	v.push_back("asdf");//在容器v后端插入数据
	v.push_back("asdf");
	v.push_back("affff");
	for(it=v.begin();it!=v.end();it++)
		cout<<*it<<endl;//这里要用*it
	return 0;
}

注意

it 似乎不能单用,要不*it,要不&it,要不it-v.begin()变成一个真正的整型

STL总结

STL用好了真的会很方便,但是初学的时候还是建议从c的风格入手。自己去实现这些数据结构。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章