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 }

 

你可能感兴趣的:(STL)