• 一个FLAG #11# Andy's First Dictionary


    题&例子

    vector的拷贝

    #include <cstdio>
    #include <string>
    #include <vector>
    #include <iostream>
    using namespace std;
    
    void print(string lable, vector<int> &v) 
    {
        cout << lable << endl;    
        for (int i = 0; i != 3; ++i) {
            printf("%d ", v[i]);
        }
        printf("
    ");
    }
    int main()
    {
        // 拷贝vector, 不同于java里面的传递对象! 
        vector<int> ivec1; // c++98没法用方便的初始化方式
        ivec1.push_back(1);
        ivec1.push_back(2);
        ivec1.push_back(3);
        
        print("ivec1:", ivec1);
        
        vector<int> ivec2(ivec1);
        ivec2[1] = 100000;
        print("改变ivec2:", ivec2);
        print("ivec1不变:", ivec1);
        
        vector<int> ivec3 = ivec1;
        ivec3[1] = 2222222;
        print("改变ivec3:", ivec3);
        print("ivec1不变:", ivec1);
        
        return 0;
    }
    /*
    Output
    
    ivec1:
    1 2 3
    
    改变ivec2:
    1 100000 3
    ivec1不变:
    1 2 3
    
    改变ivec3:
    1 2222222 3
    ivec1不变:
    1 2 3
    */

    例题5-3 安迪的第一个字典。[1]

    补充set和map的知识,它们之间的区别与联系[3]

    • set = 键
    • map = 键 + 值

    两者的元素都会基于键从小到大自动排序。

    #include <iostream>
    #include <string>
    #include <set>
    #include <sstream>
    using namespace std;
    
    set<string> dict;
    
    int main()
    {
        string s, buf;
        
        while (cin >> s) {
            // s里面存的是不规则的字符串,例如 Left." 又 例如Road.you
            // 是包含标点的 
            for (int i = 0; i != s.length(); ++i) {
                if (isalpha(s[i])) { // isalpha判断是否是字母,非字母返回零
                    s[i] = tolower(s[i]);
                } else {
                    s[i] = ' ';
                }
            }        
            // 经改造后就变成 left  以及 road you
            // 包含空格,并且可能一个s对应多个单词 
            stringstream ss(s);
            while (ss >> buf) { // 从字符串流里逐个单词读入到buf中 
                dict.insert(buf); // 插入到集合里 
            }
        }
        
        for (set<string>::iterator it = dict.begin(); it != dict.end(); ++it) {
            cout << *it << "
    ";
        }
        
        return 0;
    }

    参考

    [1] 安迪的第一个字典 Andy's First Dictionary, UVa 10815_博客园

    [2] c++ cin返回值是多少_百度知道

    [3] set和map的区别与联系

  • 相关阅读:
    人间故事馆话题:聊聊那些被骗经历,让其他人不再被骗
    路过的风景
    路过的风景
    上海最适合拍照的旅游地点
    Java EE (11)
    五、服务器端的局域网
    P1294 高手去散步 洛谷
    堆排序【模板】
    P3383 【模板】线性筛素数 洛谷
    P1516 青蛙的约会 洛谷
  • 原文地址:https://www.cnblogs.com/xkxf/p/12652287.html
Copyright © 2020-2023  润新知