用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的風格入手。自己去實現這些數據結構。

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