diff --git a/STL 2.0/MAPS/basics.cpp b/STL 2.0/MAPS/basics.cpp new file mode 100644 index 0000000..c47ee4f --- /dev/null +++ b/STL 2.0/MAPS/basics.cpp @@ -0,0 +1,52 @@ +/* +-------------- ORDERED MAPS ----------------- +Time Complexity : O(log(n)) +*/ + +#include +using namespace std; + +void print(map &m){ + cout<<"Size: "< m; + //TIME COMPLEXITY OF INSERTION OF ELEMENTS: O(log(n))--> n: size of MAP + m[1] = "abc"; + m[5] = "cdc"; + m[3] = "acd"; + m.insert({4,"abc"}); + m.insert({8,"abc"}); + + + // map :: iterator it; + // for(it=m.begin();it!=m.end();it++){ + // cout<first<<" "<second<first<<" "<second< +using namespace std; + +int main(){ + map,vector> m; + return 0; +} \ No newline at end of file diff --git a/STL 2.0/MAPS/questions.cpp b/STL 2.0/MAPS/questions.cpp new file mode 100644 index 0000000..3b05236 --- /dev/null +++ b/STL 2.0/MAPS/questions.cpp @@ -0,0 +1,49 @@ +// // /* +// // Given N strings. Print unique strings in lexographical order +// // with their frequency +// // N<= 10^5 +// // |S| <= 100 +// // */ + +#include +using namespace std; + +int main(){ + int N;cin>>N; + map m; + for(int i=0;i>s; + // m[i] = s; //making a map + m[s]++; + } +//Range Based Loop + for(auto pair : m){ + cout< +// using namespace std; + +// int main(){ +// multimap list; +// int turn;cin>>turn; +// while(turn--){ +// string name; int marks; +// cin>>name>>marks; +// list.insert({marks,name}); +// } +// map :: iterator it; +// it = (--list.end()); +// while(it!=list.begin()){ +// cout<second<<" "<first<second<<" "<first< +using namespace std; + +int main(){ + unordered_map m; + int N;cin>>N; + while(N--){ + string s; + cin>>s; + m[s]++; + } + int q;cin>>q; + while(q--){ + string s; + cin>>s; + cout< +using namespace std; + +int main(){ + set s; + s.insert("abc"); + s.insert("ghi"); + s.insert("def"); + s.insert("jkl"); + s.insert("mnp"); + s.insert("abcd"); + s.insert("sdwefd"); + auto it = s.find("abc"); + if(it != s.end()){ + // cout<<*it< +// using namespace std; + +// int main(){ +// int turn; +// cin>>turn; +// while(turn--){ +// long long N , K; //N--> number of bag, K--> total time he has +// multiset candies; +// for (long long i = 0; i < N; i++) +// { +// long long A; +// cin>>A; +// candies.insert(A); +// } +// long long eaten = 0; +// while(K--){ +// auto last_it = (--candies.end()); +// long long candy_ct = *(last_it); +// eaten += candy_ct; +// candies.erase(last_it); +// candies.insert(candy_ct / 2); +// } +// cout<< eaten << endl; +// } + +// return 0; +// } + +// ------------- SETS : Hackerrank --------------- +// #include +// using namespace std; + +// int main(){ +// int query; cin>>query; +// set s; +// while(query--){ +// long long y,x; +// cin>>y>>x; +// if(y==1){ +// s.insert(x); +// } +// else if(y==2){ +// auto it = s.find(x); +// if(it==s.end()){ +// continue; +// } +// else{ +// s.erase(x); +// } +// } +// else if(y==3){ +// auto it = s.find(x); +// if(it !=s.end()){ +// cout<<"Yes"< +using namespace std; + +int main(){ + int N;cin>>N; + while(N--){ + set list; + int num;cin>>num; + while(num--){ + string name; + cin>>name; + list.insert(name); + } + for(auto val : list){ + cout<< val< +using namespace std; + +int main(){ + unordered_set s; + int N; + cin>>N; + for (int i = 0; i < N; i++) + { + string S; + cin>>S; + s.insert(S); + } + int Q; + cin>>Q; + for (int i = 0; i < Q; i++) + { + string q; + cin>>q; + auto it = s.find(q); + if(it!=s.end()){ + cout<<"PRESENT"< +using namespace std; + +int main(){ + int n;cin>>n; + int a[n]; + for(int i = 0;i>a[i]; + } + sort(a,a+n); + for(int i = 0;i +using namespace std; + +int main(){ + int size;cin>>size; + int a[size]; + for(int i=0;i>a[i]; + } + sort(a,a+size); + for(int i=0;i +using namespace std; + +int main(){ + int n;cin>>n; + vector a(n); + for(int i = 0;i>a[i]; + } + sort(a.begin(),a.end()); + for(int i = 0;i +using namespace std; + +int main(){ + queue q; + q.push("abc"); //Frontmost element + q.push("bcd"); + q.push("dfr"); + q.push("wer"); + q.push("asx");//Last element + while(!q.empty()){ + cout< +using namespace std; + +int main(){ + stack s; + s.push(2); //First Element + s.push(3); + s.push(4); + s.push(5); //Topmost Element + while(!s.empty()){ + cout< +// using namespace std; + +// unordered_map symbols = {{'[',-1},{'(',-2},{'{',-3},{']',1},{')',2},{'}',3}}; + +// string isBalanced(string s) { +// stackst; +// for(char bracket : s){ +// if(symbols[bracket]<0){ +// st.push(bracket); +// } +// else{ +// if(st.empty()) return "NO"; +// char top = st.top(); +// st.pop(); +// if(symbols[top] + symbols[bracket]!=0){ +// return "NO"; +// } +// } +// } +// if(st.empty()){ +// return "YES"; +// } +// return "NO"; + +// } + +// int main(){ +// int turn;cin>>turn; +// while(turn--){ +// string s; +// cin>>s; +// cout< +using namespace std; + +vector NGE(vector v){ + vector nge(v.size()); + stack st; + for (int i = 0; i < v.size(); i++) + { + while (!st.empty() && v[i]>v[st.top()]) + { + nge[st.top()] = i; + st.pop(); + } + st.push(i); + } + while(!st.empty()){ + nge[st.top()] = -1; + st.pop(); + } + return nge; + + +} + +int main(){ + int n;cin>>n; + vector v(n); + for(int i=0;i>v[i]; + } + + vector nge = NGE(v); + for (int i = 0; i < n; i++) + { + cout< +using namespace std; + +void printVec(vector&v){ + cout<<"SIZE: "<> v; //= {{1,2},{3,4},{4,5}}; + // printVec(v); + // int n; + // cin>>n; + // for (int i = 0; i < n; i++) + // { + // int x,y; + // cin>>x>>y; + // v.push_back({x,y}); + // } + // printVec(v); + + // ************ ARRAYS of VECTORS ************* + // int N; //declaring how many vectors we want + // cin>>N; + // vector v[N]; //creating N vector-array + + // for (int i = 0; i < N; i++) + // { + // int n;cin>>n; //input size of each vector; + // for (int j = 0; j < n; j++) + // { + // int num; + // cin>>num; + // v[i].push_back(num); + // } + + // } + // for (int i = 0; i < N; i++) + // { + // printVec(v[i]); + // } + + // ********** VECTOR of VECTOR + int N; //how many nested vectors we want. + cin>>N; + vector> v; //we will get N vectors; + + for(int i=0;i>size; + vector temp; + for(int j=0;j>num; + // v[i].push_back(num); //This statement isn't allowed as v[i] doesnot exist rn. + temp.push_back(num); + } + v.push_back(temp); + } + + for (int i = 0; i < v.size(); i++) + { + printVec(v[i]); + } + + + return 0; +} \ No newline at end of file diff --git a/STL 2.0/Vectors and Pairs/Nesting_vect.exe b/STL 2.0/Vectors and Pairs/Nesting_vect.exe new file mode 100644 index 0000000..d1f002e Binary files /dev/null and b/STL 2.0/Vectors and Pairs/Nesting_vect.exe differ diff --git a/STL 2.0/Vectors and Pairs/iterator.cpp b/STL 2.0/Vectors and Pairs/iterator.cpp new file mode 100644 index 0000000..8778571 --- /dev/null +++ b/STL 2.0/Vectors and Pairs/iterator.cpp @@ -0,0 +1,34 @@ +#include +using namespace std; + +int main(){ + vector v ={2,3,4,5,6,7}; + // vector :: iterator it = v.begin(); + // for(int i=0;i> v_p = {{1,2},{3,4},{5,6}}; + // vector> :: iterator it_p; + // for (it_p = v_p.begin(); it_p!=v_p.end(); it_p++) + // { + // // cout<<(*(it_p)).first<<" "<<(*(it_p)).second<first<<" "<<(it_p)->second< val : v_p){ + cout< +// using namespace std; + +// int main(){ + //Making a pair +// pair p; + + //Ways to input in a pair +// p = {2,"abc"}; +// p = make_pair(2,"abc"); + + //Making array pairs +// int a[3] = {1,2,3}; +// int b[3] = {10,20,30}; +// pairp[3]; +// p[0] = {a[0] , b[0]}; +// p[1] = {a[1] , b[1]}; +// p[2] = {a[2] , b[2]}; +// swap(p[0],p[2]); +// for (int i = 0; i < 3; i++) +// { +// cout<