http://www.cplusplus.com/reference/stl/
http://net.pku.edu.cn/~yhf/UsingSTL.htm
#include<set>
1 #include<iostream> 2 #include<set> 3 using namespace std; 4 int main() 5 { 6 int i,j,n,a; 7 cin>> n; 8 set <int> h;//定义一个h 9 for(i = 1 ;i <= n ; i++) 10 { 11 cin >> a; 12 h.insert(a); 13 } 14 set <int>::iterator it;//定义一个it指针 15 for(it = h.begin(); it!=h.end() ; it++) 16 { 17 cout<<*it<<endl;//输出数的位置 18 } 19 if(h.find(3)!=h.end()) 20 cout<<"3 is in set h"<<endl; 21 else 22 cout<<"no,not exist"<<endl; 23 return 0; 24 }
#include<map> 映射函数
map 相当于一个哈希函数,一个键值唯一对应另一个建值 。其内部实现和set采用的是同一数据结构 红黑树,所以插入删除操作的复杂度为log(n).
http://blog.sina.com.cn/s/blog_7ef869630100slba.html
1 #include<iostream> 2 #include<string> 3 #include<map> 4 #include<algorithm> 5 #include<utility> 6 using namespace std; 7 int main() 8 { 9 int i,j,a = 0,n; 10 map<string, int > f;//定义一个字符串与整数的映射 11 string str; 12 cin>>n; 13 for(i = 0 ; i < n ; i++) 14 { 15 cin>>str; 16 f[str] = a++; 17 } 18 for(i= 0 ;i < 3 ; i++) 19 { 20 cin>>str; 21 cout<<f[str]<<endl;//输出字符串的映射 22 } 23 f.insert(make_pair(string ("abc"),int (123))); 24 cout<<f["abc"]<<endl; 25 return 0; 26 }
http://poj.org/problem?id=3096
1 #include<iostream> 2 #include<cstring> 3 #include<string.h> 4 #include <cstdio> 5 #include<map> 6 using namespace std; 7 map <string,int> f; 8 int main() 9 { 10 int i,j,k; 11 char str[80],c[80]; 12 while(cin>>str) 13 { 14 int flag = 1; 15 if(str[0]=='*') 16 break; 17 for(i = 1 ; i < strlen(str)-1 ; i++) 18 { 19 int g = 0; 20 f.clear(); 21 for(j = 0 ; j < strlen(str) ; j++) 22 { 23 if(i+j<strlen(str)) 24 { 25 c[0] = str[j]; 26 c[1] = str[i+j]; 27 c[2] = '\0'; 28 if(f[c]) 29 { 30 flag = 0; 31 break; 32 } 33 else 34 f[c] = 1; 35 } 36 } 37 if(!flag) 38 break; 39 } 40 if(flag) 41 cout<<str<<" is surprising."<<endl; 42 else 43 cout<<str<<" is NOT surprising."<<endl; 44 } 45 return 0; 46 }
#include<algorithm> sort函数
1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 bool cmp(int a,int b) 5 { 6 return a>b; 7 } 8 int main() 9 { 10 int n,i,j,a[10]; 11 cin >> n; 12 for(i = 0 ; i < n ; i++) 13 cin >> a[i]; 14 sort(a, a+n);//默认由小到大排 15 for(i = 0 ; i < n ; i++) 16 cout<<a[i]<<endl; 17 sort(a,a+n,cmp);//可以自己定义排序方式 18 for(i = 0 ; i < n ; i++) 19 cout<<a[i]<<endl; 20 sort(a+3,a+n);//可以对一段进行排序 21 for(i = 0 ; i < n ; i++) 22 cout<<a[i]<<endl; 23 return 0; 24 }
#include<stack>
1 #include<iostream> 2 #include<stack> 3 using namespace std; 4 int main() 5 { 6 int n,i,j,x; 7 stack <int> st; 8 cin>>n; 9 for(i = 1 ; i <= n ; i++) 10 { 11 cin>>x; 12 st.push(x); 13 } 14 while(!st.empty()) 15 { 16 x = st.top(); 17 st.pop(); 18 cout<< x <<endl; 19 } 20 return 0; 21 }
1 #include <iostream> 2 #include<cstdio> 3 #include<string.h> 4 #include<map> 5 using namespace std; 6 char buf[10000]; 7 int main() 8 { 9 int n,i[10],j,b[13],no[13],f; 10 char c[10][4],s[13]; 11 c[2][1] = 'A'; 12 c[2][2] = 'B'; 13 c[2][3] = 'C'; 14 c[3][1] = 'D'; 15 c[3][2] = 'E'; 16 c[3][3] = 'F'; 17 c[4][1] = 'G'; 18 c[4][2] = 'H'; 19 c[4][3] = 'I'; 20 c[5][1] = 'J'; 21 c[5][2] = 'K'; 22 c[5][3] = 'L'; 23 c[6][1] = 'M'; 24 c[6][2] = 'N'; 25 c[6][3] = 'O'; 26 c[7][1] = 'P'; 27 c[7][2] = 'R'; 28 c[7][3] = 'S'; 29 c[8][1] = 'T'; 30 c[8][2] = 'U'; 31 c[8][3] = 'V'; 32 c[9][1] = 'W'; 33 c[9][2] = 'X'; 34 c[9][3] = 'Y'; 35 scanf("%d",&n); 36 int k = 0; 37 while(n) 38 { 39 b[k++] = n%10; 40 n = n/10; 41 } 42 if(k==1) 43 for(i[0]= 1 ; i[0] <= 3 ; i[0]++) 44 { 45 for(f = 0 ; f <= k-1 ; f++) 46 s[k-1-f] = c[b[f]][i[f]]; 47 s[k] = '\0'; 48 while(fgets(buf, 100000, fp) != NULL) 49 { 50 char * p = strstr(buf, s); 51 if(p=NULL) 52 puts(s); 53 } 54 } 55 if(k==2) 56 for(i[1]= 1 ; i[1] <= 3 ; i[1]++) 57 for(i[0]= 1 ; i[0] <= 3 ; i[0]++) 58 { 59 for(f = 0 ; f <= k-1 ; f++) 60 s[k-1-f] = c[b[f]][i[f]]; 61 s[k] = '\0'; 62 } 63 if(k==3) 64 for(i[2]= 1 ; i[2] <= 3 ; i[2]++) 65 for(i[1]= 1 ; i[1] <= 3 ; i[1]++) 66 for(i[0]= 1 ; i[0] <= 3 ; i[0]++) 67 { 68 for(f = 0 ; f <= k-1 ; f++) 69 s[k-1-f] = c[b[f]][i[f]]; 70 s[k] = '\0'; 71 } 72 if(k==4) 73 for(i[3]= 1 ; i[3] <= 3 ; i[3]++) 74 for(i[2]= 1 ; i[2] <= 3 ; i[2]++) 75 for(i[1]= 1 ; i[1] <= 3 ; i[1]++) 76 for(i[0]= 1 ; i[0] <= 3 ; i[0]++) 77 { 78 for(f = 0 ; f <= k-1 ; f++) 79 s[k-1-f] = c[b[f]][i[f]]; 80 s[k] = '\0'; 81 while(fgets(buf,10000,fp)!= NULL) 82 { 83 char *p = strstr(buf, s); 84 if(p!=NULL) 85 puts(s); 86 } 87 } 88 if(k==5) 89 for(i[4]= 1 ; i[4] <= 3 ; i[4]++) 90 for(i[3]= 1 ; i[3] <= 3 ; i[3]++) 91 for(i[2]= 1 ; i[2] <= 3 ; i[2]++) 92 for(i[1]= 1 ; i[1] <= 3 ; i[1]++) 93 for(i[0]= 1 ; i[0] <= 3 ; i[0]++) 94 { 95 for(f = 0 ; f <= k-1 ; f++) 96 s[k-1-f] = c[b[f]][i[f]]; 97 s[k] = '\0'; 98 } 99 if(k==6) 100 for(i[6]= 1 ; i[6] <= 3 ; i[6]++) 101 for(i[5]= 1 ; i[5] <= 3 ; i[5]++) 102 for(i[4]= 1 ; i[4] <= 3 ; i[4]++) 103 for(i[3]= 1 ; i[3] <= 3 ; i[3]++) 104 for(i[2]= 1 ; i[2] <= 3 ; i[2]++) 105 for(i[1]= 1 ; i[1] <= 3 ; i[1]++) 106 for(i[0]= 1 ; i[0] <= 3 ; i[0]++) 107 { 108 for(f = k-1 ; f >=0 ; f--) 109 s[k-1-f] = c[b[f]][i[f]]; 110 s[k] = '\0'; 111 puts(s); 112 } 113 if(k==7) 114 for(i[7]= 1 ; i[7] <= 3 ; i[7]++) 115 for(i[6]= 1 ; i[6] <= 3 ; i[6]++) 116 for(i[5]= 1 ; i[5] <= 3 ; i[5]++) 117 for(i[4]= 1 ; i[4] <= 3 ; i[4]++) 118 for(i[3]= 1 ; i[3] <= 3 ; i[3]++) 119 for(i[2]= 1 ; i[2] <= 3 ; i[2]++) 120 for(i[1]= 1 ; i[1] <= 3 ; i[1]++) 121 for(i[0]= 1 ; i[0] <= 3 ; i[0]++) 122 { 123 for(f = k-1 ; f >=0 ; f--) 124 s[k-1-f] = c[b[f]][i[f]]; 125 s[k] = '\0'; 126 puts(s); 127 } 128 if(k==8) 129 for(i[7]= 1 ; i[7] <= 3 ; i[7]++) 130 for(i[6]= 1 ; i[6] <= 3 ; i[6]++) 131 for(i[5]= 1 ; i[5] <= 3 ; i[5]++) 132 for(i[4]= 1 ; i[4] <= 3 ; i[4]++) 133 for(i[3]= 1 ; i[3] <= 3 ; i[3]++) 134 for(i[2]= 1 ; i[2] <= 3 ; i[2]++) 135 for(i[1]= 1 ; i[1] <= 3 ; i[1]++) 136 for(i[0]= 1 ; i[0] <= 3 ; i[0]++) 137 { 138 for(f = k-1 ; f >=0 ; f--) 139 s[k-1-f] = c[b[f]][i[f]]; 140 s[k] = '\0'; 141 puts(s); 142 } 143 if(k==9) 144 for(i[8]= 1 ; i[8] <= 3 ; i[8]++) 145 for(i[7]= 1 ; i[7] <= 3 ; i[7]++) 146 for(i[6]= 1 ; i[6] <= 3 ; i[6]++) 147 for(i[5]= 1 ; i[5] <= 3 ; i[5]++) 148 for(i[4]= 1 ; i[4] <= 3 ; i[4]++) 149 for(i[3]= 1 ; i[3] <= 3 ; i[3]++) 150 for(i[2]= 1 ; i[2] <= 3 ; i[2]++) 151 for(i[1]= 1 ; i[1] <= 3 ; i[1]++) 152 for(i[0]= 1 ; i[0] <= 3 ; i[0]++) 153 { 154 for(f = k-1 ; f >=0 ; f--) 155 s[k-1-f] = c[b[f]][i[f]]; 156 s[k] = '\0'; 157 puts(s); 158 } 159 if(k==10) 160 for(i[9]= 1 ; i[9] <= 3 ; i[9]++) 161 for(i[8]= 1 ; i[8] <= 3 ; i[8]++) 162 for(i[7]= 1 ; i[7] <= 3 ; i[7]++) 163 for(i[6]= 1 ; i[6] <= 3 ; i[6]++) 164 for(i[5]= 1 ; i[5] <= 3 ; i[5]++) 165 for(i[4]= 1 ; i[4] <= 3 ; i[4]++) 166 for(i[3]= 1 ; i[3] <= 3 ; i[3]++) 167 for(i[2]= 1 ; i[2] <= 3 ; i[2]++) 168 for(i[1]= 1 ; i[1] <= 3 ; i[1]++) 169 for(i[0]= 1 ; i[0] <= 3 ; i[0]++) 170 { 171 for(f = k-1 ; f >=0 ; f--) 172 s[k-1-f] = c[b[f]][i[f]]; 173 s[k] = '\0'; 174 puts(s); 175 } 176 if(k==11) 177 for(i[10]= 1 ; i[10] <= 3 ; i[10]++) 178 for(i[9]= 1 ; i[9] <= 3 ; i[9]++) 179 for(i[8]= 1 ; i[8] <= 3 ; i[8]++) 180 for(i[7]= 1 ; i[7] <= 3 ; i[7]++) 181 for(i[6]= 1 ; i[6] <= 3 ; i[6]++) 182 for(i[5]= 1 ; i[5] <= 3 ; i[5]++) 183 for(i[4]= 1 ; i[4] <= 3 ; i[4]++) 184 for(i[3]= 1 ; i[3] <= 3 ; i[3]++) 185 for(i[2]= 1 ; i[2] <= 3 ; i[2]++) 186 for(i[1]= 1 ; i[1] <= 3 ; i[1]++) 187 for(i[0]= 1 ; i[0] <= 3 ; i[0]++) 188 { 189 for(f = k-1 ; f >=0 ; f--) 190 s[k-1-f] = c[b[f]][i[f]]; 191 s[k] = '\0'; 192 puts(s); 193 } 194 if(k==12) 195 for(i[11]= 1 ; i[11] <= 3 ; i[11]++) 196 for(i[10]= 1 ; i[10] <= 3 ; i[10]++) 197 for(i[9]= 1 ; i[9] <= 3 ; i[9]++) 198 for(i[8]= 1 ; i[8] <= 3 ; i[8]++) 199 for(i[7]= 1 ; i[7] <= 3 ; i[7]++) 200 for(i[6]= 1 ; i[6] <= 3 ; i[6]++) 201 for(i[5]= 1 ; i[5] <= 3 ; i[5]++) 202 for(i[4]= 1 ; i[4] <= 3 ; i[4]++) 203 for(i[3]= 1 ; i[3] <= 3 ; i[3]++) 204 for(i[2]= 1 ; i[2] <= 3 ; i[2]++) 205 for(i[1]= 1 ; i[1] <= 3 ; i[1]++) 206 for(i[0]= 1 ; i[0] <= 3 ; i[0]++) 207 { 208 for(f = k-1 ; f >=0 ; f--) 209 s[k-1-f] = c[b[f]][i[f]]; 210 s[k] = '\0'; 211 puts(s); 212 } 213 return 0; 214 }