• STL


      1 #include<iostream>
      2 #include<vector>
      3 #include<list>
      4 #include<set>
      5 #include<map>
      6 #include<string>
      7 #include<algorithm>
      8 using namespace std;
      9 
     10 /**
     11 *
     12 *判断vector正反向元素是否一样
     13 */
     14 template<class T>
     15 bool fun1(const vector<T> v) {
     16     for (int i = 0; i < v.size() / 2; i++) {
     17         if (v.at(i) != v.at(v.size() - i - 1)) {
     18             return false;
     19         }
     20         else {
     21             return true;
     22         }
     23     }
     24 }
     25 
     26 /**
     27 *判断list正反向元素是否一样
     28 */
     29 template<class T>
     30 bool fun2(const list<T> l) {
     31     auto start = l.begin();
     32     auto tail = l.end();
     33     while (1) {
     34         tail--;
     35         if (start == tail) break;
     36         if ((*start) != (*tail)) {
     37             return false;
     38         }
     39         start++;
     40         if (start == tail) break;
     41     }
     42     return true;
     43 }
     44 
     45 
     46 template<class T>
     47 void test1(const vector<T>& v) {
     48     cout << fun1(v) << endl;
     49 }
     50 
     51 template<class T>
     52 void test2(const list<T> l) {
     53     cout << fun2(l) << endl;
     54 }
     55 
     56 
     57 template<class T>
     58 void test3(vector<T>& v) {
     59 
     60     int n;
     61     cin >> n;
     62     T temp;
     63     for (int i = 0; i < n; i++) {
     64         cin >> temp;
     65         v.push_back(temp);
     66     }
     67     cout << "Before sort ! " << endl;
     68     for (auto i : v) {
     69         cout << i << ' ';
     70     }
     71     sort(v.begin(), v.end());
     72     cout << endl << "After sort ! " << endl;
     73     for (auto i : v) {
     74         cout << i << ' ';
     75     }
     76     cout << endl << "Please input a number you want to search : ";
     77     auto ite = v.begin();
     78     while (cin >> n) {
     79         if ((ite = find(v.begin(), v.end(), n)) != v.end()) {
     80             cout << *ite;                                                        /*****/
     81         }
     82         else {
     83             cout << "No find!";
     84         }
     85         cout << endl << "Please input a number you want to search : ";
     86     }
     87 }
     88 
     89 
     90 /**
     91 *求两个集合的交集
     92 */
     93 void test4() {
     94     set<int> s1 = { 9,5,6,3,2,1,8,4,7,1,5,2,4,6,5,4,7,8,5,9,6,4,2 };
     95     set<int> s2 = { 1,0,10,5,6,4,3,2,8,7,9,100,5,8, 5,8,5,5,8,25, };
     96     set<int> s3;
     97     cout << "s1 : ";
     98     for (auto ele : s1) {
     99         cout << ele << ' ';
    100     }
    101     cout << endl << "s2 : ";
    102     for (auto ele : s2) {
    103         cout << ele << ' ';
    104     }
    105     cout << endl;
    106     for (auto ele : s1) {
    107         if (s2.find(ele) != s2.end()) {
    108             s3.insert(ele);
    109         }
    110     }
    111     cout << endl << "s3 : ";
    112     for (auto ele : s3) {
    113         cout << ele << ' ';
    114     }
    115 }
    116 
    117 /**
    118 *测试map类
    119 */
    120 void test5() {
    121     map<string, string> m;
    122     m.insert(pair<string, string>("zero", ""));
    123     m.insert(pair<string, string>("one", ""));
    124     m.insert(pair<string, string>("two", ""));
    125     m.insert(pair<string, string>("three", ""));
    126     m.insert(pair<string, string>("four", ""));
    127     m.insert(pair<string, string>("five", ""));
    128     m.insert(pair<string, string>("six", ""));
    129     m.insert(pair<string, string>("seven", ""));
    130     m.insert(pair<string, string>("eight", ""));
    131     m.insert(pair<string, string>("nine", ""));
    132     m.insert(pair<string, string>("ten", ""));
    133     string key;
    134     pair<string, string> a;
    135     while (cin >> key) {
    136         if (m.find(key) != m.end()) {
    137             a = *(m.find(key));
    138             cout << a.second << endl;
    139         }
    140         else {
    141             cout << "No find!" << endl;
    142         }
    143     }
    144 }
    145 
    146 
    147 
    148 /**
    149 *计算一个文章中某个单词出现的频率
    150 */
    151 void test6() {
    152     map<string, int> m;
    153     pair<string, int> a;
    154     pair<std::map<string, string>::iterator, bool> judge;
    155     vector<string> v;
    156     string temp;
    157     int num = 0;
    158     while (cin >> temp) {
    159         a.first = temp;
    160         a.second = 0;
    161         m.insert(a);
    162         v.push_back(temp);
    163     }
    164     cin.clear();
    165     for (auto ele : v) {
    166         m[ele]++;
    167     }
    168     cout << "Please input the word you want to see : ";
    169     while (cin >> temp) {
    170         cout << m[temp];
    171         cout << "Please input the word you want to see : ";
    172     }
    173 }
    174 
    175 int main() {
    176     int a[10] = { 1,2,3,4,5,6 };
    177     vector<int> v(a, a + 10);
    178     vector<int> vv;
    179     list<int> l;
    180     l.assign(a, a + 10);
    181     //test1(v);
    182     //test2(l);
    183     //test3(vv);
    184     //test4();
    185     //test5();
    186     test6();
    187 
    188 }
  • 相关阅读:
    python文件上传
    Django
    Python生产环境部署(fastcgi,uwsgi)
    tp3.2 自带的文件上传及生成缩略图功能
    图片上传--base64
    图片上传
    PHP处理大数据量老用户头像更新的操作--解决数据量大超时的问题
    mysql悲观锁处理赠品库存超卖的情况
    bzoj 3551: [ONTAK2010]Peaks加强版
    bzoj 4817: [Sdoi2017]树点涂色
  • 原文地址:https://www.cnblogs.com/qjm253/p/5630918.html
Copyright © 2020-2023  润新知