# STL大複習 #### 110APCS進階預備班 --- # 甚麼是STL? - Standard Template Liberty - 可以裝資料的容器 - 刻好的模板,方便我們使用 ---- # Syllabus - string - vector - stack/queue/deque - priority_queue - map - set - bitset --- # string ``` cpp= //declare string s; //give value cin >>s; getline(cin,s);//allow " " //find one index s[5]; //size //good cout<<s.size(); //bad cout<<strlen(s); //clear s.clear(); ``` --- # vector ``` cpp= //declare vector<int> v; vector<char> v[10005]; //add element //faster v.emplace_back(x); //slower v.push_back(x); //erase back v.pop_back() //go through for(auto i:v){ //i:the elements of vector v } //size v.size() // clear v.clear(); ``` --- # stack/queue/deque ---- ## stack ``` cpp= //declare stack<int> st; stack<char> st; //add element to back st.push(x); //query the last element st.top(); //move out the last element st.pop(); //check is empty st.empty(); //size st.size() ``` ---- ## queue ``` cpp= //declare queue<int> qu; //add element to back qu.push(x); //query the first element qu.front(); //move out the last element qu.pop(); //check is empty qu.empty(); //size qu.size() ``` ---- ## deque ``` cpp= //declare deque<int> dq; //add element to back dq.push_back(x); dq.push_front(x); //query the last element dq.front(); dq.back(); //move out the last element dq.pop_back(); dq.pop_front(); //check is empty dq.empty(); //size dq.size() ``` ---- ## priority_queue ``` cpp= //declare priority_queue<int> pq; //add element to back pq.push(x); //query the element pq.top(); //move out the last element pq.pop(); //check is empty pq.empty() //size pq.size() ``` --- ## map ``` cpp= //declare map<int,int> mp; //add element to back mp.insert(x); mp[y]=x; //query the element mp[y] mp.begin(); mp.end(); //move out the last element mp.erase(x); //check the element with key x is present in the map container //return bool mp.count(x) //return iterator mp.find(x) //check is empty mp.empty() //size mp.size() ``` ---- ## set ``` cpp= //declare set<int> S; //add element to back S.insert(x); S[y]=x; //query the element S[y] S.begin(); S.end(); //check the x is in the set //return iterator S.find(x) //return S.count(x) //move out the last element S.erase(x); //check is empty S.empty() //size S.size() ``` --- # bitset ``` cpp= //declare bitset<100010> bt; //give value string str; cin>>str; bt=bitset<100010>(str); //find one index bt[5]; //set all element to 0 bt.reset(); //set all element to 1 bt.set(); //bitwise operation bitset<10> a,b; for(auto &i:a) cin>>i; for(auto &i:b) cin>>b; cout<<a&b<<"\n"; cout<<a|b<<"\n"; cout<<a^b<<"\n"; ```
{"metaMigratedAt":"2023-06-16T20:05:28.954Z","metaMigratedFrom":"YAML","title":"STL大複習","breaks":true,"contributors":"[{\"id\":\"4f67c477-a6ac-4743-a794-5e693b4248d6\",\"add\":18,\"del\":0},{\"id\":\"77be2af8-ce15-4578-9f4d-33dde9879cdc\",\"add\":2142,\"del\":211},{\"id\":\"bafdb37c-3398-4b0c-b651-e39724d20cc3\",\"add\":118,\"del\":202},{\"id\":\"3978a08d-c47c-4560-b04d-dfbd8e71d0a3\",\"add\":20,\"del\":1},{\"id\":\"5bb01a70-36c3-48c5-b395-f94ab50d9e3b\",\"add\":805,\"del\":2}]"}
    318 views
   owned this note