STL

http://www.cplusplus.com/reference/stl/

http://net.pku.edu.cn/~yhf/UsingSTL.htm

#include<set>

View Code
 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

View Code
 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

View Code
 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函数

View Code
 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>

View Code
 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 }

 

View Code
  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 }

 

posted @ 2012-07-23 09:36  _雨  阅读(248)  评论(0编辑  收藏  举报