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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451629.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451629.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451629.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《netty實戰》閱讀筆記(2)——Netty 的數據容器ByteBuf

ByteBuffer 當我們進行數據傳輸的時候&#xff0c;往往需要使用到緩沖區&#xff0c;常用的緩沖區就是JDK NIO類庫提供的java.nio.Buffer。 實際上&#xff0c;7種基礎類型&#xff08;Boolean除外&#xff09;都有自己的緩沖區實現&#xff0c;對于NIO編程而言&#xff0c;我們…

JAVA HASHMAP 用法

import java.util.HashMap;public class Student { String name; String sex; public Student(String n,String s) { namen; sexs; } public String toString(){ return ("姓名:"name"\n""性別:"sex"\n…

有了二叉查找樹、平衡樹為啥還需要紅黑樹?

參考文章&#xff1a; 有了二叉查找樹、平衡樹為啥還需要紅黑樹&#xff1f; 漫畫AVL樹 謝謝作者分享&#xff01;

32位Windows7上8G內存使用感受+xp 32位下使用8G內存

我推薦做開發的朋友:趕快加入8G的行列吧....呵呵..超爽...速度超快...基本沒有等待的概念...深有體會... 為什么要使用8G內存&#xff1f;在國內外各大論壇上&#xff0c;這都是一個有爭議的問題。問題的反方論據非常充分&#xff1a; 除了少數專業領域&#xff0c;大多數應用程…

《重構-改善既有代碼的設計》-第1例:租賃影片(2)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 上接 重構-改善既有代碼的設計-第1例&#xff1a;租賃影片&#xff08;1&#xff09; 2 運用多態取代與價格相關的條件邏輯 2.1 最好不…

elasticsearch 的查詢 /_nodes/stats 各字段意思

/_nodes/stats 字段意思 “” 1 { 2 "_nodes": {3 "total": 1,4 "successful": 1,5 "failed": 06 },7 "cluster_name": "ELKTEST",8 "nodes": {9 "lnlHC8yERCKXCuAc…

看完Java的動態代理技術——Pythoner笑了

Java的動態代理常用來包裝原始方法調用&#xff0c;用于增強或改寫現有方法的邏輯&#xff0c;它在Java技術領域被廣為使用&#xff0c;在阿里的Sofa RPC框架序列化中你能看到它的身影&#xff0c;Hibernate的實體類功能增強也是以動態代理的方式解決的&#xff0c;還有Spring吹…

shell實現從1加到100

#!/bin/bash # test"while do done"PATH/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATHsum0 for i in $(seq 1 100); do let sumi done echo "The sum is > $sum "

面試常考的數據結構Java實現

1、線性表 2、線性鏈表 3、棧 4、隊列 5、串 6、數組 7、廣義表 8、樹和二叉樹 二叉樹&#xff1a;每個結點至多只有兩棵子樹&#xff08;即二叉樹中不存在度大于2的結點&#xff09;&#xff0c;并且&#xff0c;二叉樹的子樹有左右之分&#xff0c;其次序不能任意顛倒。 二叉…

Java5線程并發庫之LOCK(鎖)CONDITION(條件)實現線程同步通信

為什么80%的碼農都做不了架構師&#xff1f;>>> Lock&#xff08;鎖&#xff09;&Condition&#xff08;條件&#xff09;實現線程同步通信 接下來介紹&#xff0c;java5線程并發庫里面的鎖。跟鎖有關的類和接口主要是位于java.util.concurrent.locks包。 Lock…

互聯網,可預見的未來

我記憶中的1998年代&#xff0c;PC迅猛發展&#xff0c;CPU速度逐年翻番&#xff0c;持續了7年&#xff0c;但下一個7年到現在&#xff0c;基本上沒有太大提升&#xff1b;顯示器從14英寸CRT發展到2005的21英寸LED&#xff0c;后來也沒有繼續進化。為什么&#xff1f;當人對計算…

什么時候用GET?什么時候用POST?

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 一、 GET和POST兩種方法都是將數據送到服務器&#xff0c;但你該用哪一種呢&#xff1f; HTTP標準包含這兩種方法是為了達到不同的目的…

邏輯運算符與邏輯表達式

1 #include <stdio.h>2 3 int main()4 {5 int a0;int b0;6 if(a&&b)//a&&ba的邏輯值為0&#xff0c;則執行else7 {8 printf("a&&b is true\n");9 } 10 else 11 { 12 printf("a&&…

linux/shell相關知識點

阿里Linux Shell腳本面試25個經典問答 Linux運維工程師12道面試題整理 感謝作者分享&#xff01;

20180601]函數與標量子查詢2.txt

[20180601]函數與標量子查詢2.txt --//昨天看http://www.cnblogs.com/kerrycode/p/9099507.html鏈接,里面提到: 通俗來將&#xff0c;當使用標量子查詢的時候&#xff0c;ORACLE會將子查詢結果緩存在哈希表中&#xff0c; 如果后續的記錄出現同樣的值&#xff0c;優化器通過緩存…

ODP 使用 ArrayBind 時可能會遇到的巨坑 'System.IConvertible' 的解決方法

Unable to cast object of type System.Nullable1[System.Int16][] to type System.IConvertible 一段代碼99%不會出錯&#xff0c;0.1%會報上邊的錯&#xff0c;debug費了老鼻子時間&#xff0c;發現此坑很深。異常是 cmd.ExecuteNonQuery() 拋的&#xff0c;實際是 para.Valu…

eclipse快速定位到錯誤處

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程 以前都是按著滾動條往下拉&#xff0c;找到錯誤的地方&#xff0c;有時比較多的時候就很麻煩。 其實eclipse是可以直接快速定位的&#x…

C語言中的“”和“”

先說左移,左移就是把一個數的所有位都向左移動若干位,在C中用<<運算符.例如: int i 1; i i << 2; //把i里的值左移2位 也就是說,1的2進制是000...0001(這里1前面0的個數和int的位數有關,32位機器,gcc里有31個0),左移2位之后變成 000...0100,也就是10進制的4,所以…

網站性能優化的三重境界

這篇文章是關于網站性能優化體驗的&#xff0c;性能優化是一個復雜的話題&#xff0c;牽涉的東西非常多&#xff0c;我只是按照我的理解列出了性能優化整個過程中需要考慮的種種因素。點到為止&#xff0c;包含的內容以淺顯的介紹為主&#xff0c;如果你有見解能告知我那再好不…

Linux使用RSA實現免密登錄(原理)

參考文獻Linux密鑰rsa加密原理和ssh使用密鑰實現免密碼登錄 感謝作者分享&#xff01;