日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STL数据结构

發布時間:2023/12/18 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STL数据结构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

STL數據結構

1.priority_queue

#include<queue>

pritority<int>q;(大根堆)

priority_queue<int,vector<int>,greater<int> >q;(小根堆)

struct no{

????int x,v;

????bool operator <(const no &T)const{return v>T.v;}

// v值xiao的優先

};

queue<no>q;

?


2.vector

#include<vector>

vector<int>vec;

vec.push_back();(加入,從0開始)

vec.size()?

vec.pop_back()? (刪除末尾)

vec.clear();

使用迭代器訪問元素.

vector<int>::iterator it; for(it=vec.begin();it!=vec.end();it++)cout<<*it<<endl;

插入元素:??? vec.insert(vec.begin()+i,a);在第i+1個元素前面插入a;

刪除元素:??? vec.erase(vec.begin()+2);刪除第3個元素

vec.erase(vec.begin()+i,vec.end()+j);刪除區間[i,j-1];區間從0開始

排序?sort(vec.begin(),vec.end(),cmp)

元素翻轉 reverse(vec.begin(),vec.end());


3.map

#include<map>

map<int,int>

直接用


4.bitset

#include<bitset>

bitset<100> s;

相當于flag[100]

也可以當做100位的二進制數

效率O(n/32)


5.set

include<set>

set<int>S//去重

multiset<int>S//不去重

?

S.begin()第一個

S.end()最后一個的下一位(沒有東西)

S.clear()

S.empty() ,判斷set容器是否為空

S.count(x);x出現次數

erase(iterator)? ,刪除定位器iterator指向的值

erase(key_value),刪除鍵值key_value的值

S.size()

lower_bound(key_value)?,返回第一個大于等于key_value的定位器

upper_bound(key_value),返回第一個大于key_value的定位器

插入?S.inset(x);

迭代器 set<int>::iterator pos;

遍歷 for(pos=S.begin();pos!=S.end();pos++)

#include<cstdio> #include<iostream> #include<cstdlib> #include<cstring> #include<algorithm> #include<cmath> #include<set> using namespace std; int main(){set<int>S;S.clear(); S.insert(1);S.insert(2);S.insert(3);set<int>::iterator it;it=S.begin();cout<<*it<<' '<<*S.begin()<<endl; //查找 set<int>::iterator t1,t2;t1=S.lower_bound(1);t2=S.upper_bound(1);cout<<*t1<<' '<<*t2<<endl;set<int>::iterator t3;t3=S.upper_bound(2);cout<<"? "<<*t3<<endl; //找不到就指向end //遍歷 for(it=S.begin();it!=S.end();++it){cout<<*it<<endl;}//統計/ 判斷是否出現 cout<<S.count(1)<<endl; //刪除it=S.end();S.erase(it); cout<<*S.end()<<endl;return 0; }

6.next_permutation(a+1,a+n+1)

7.nth_element(first,kth,last,cmp)

?nth_element(now+1,now+m+1,now+n+1,greater<ll>());

注意前m個是無序的,但保證是前m大

轉載于:https://www.cnblogs.com/liankewei/p/10358868.html

總結

以上是生活随笔為你收集整理的STL数据结构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。