美文网首页
vector PAT1052

vector PAT1052

作者: Fattyu | 来源:发表于2017-08-10 10:44 被阅读0次

    Vector 是在 java 中可以实现自动增长的对象数组,vector在C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。
    一,基本操作

    1>. a.size()                 //获取向量中的元素个数
    
    
        2>. a.empty()                //判断向量是否为空
    
    
        3>. a.clear()                //清空向量中的元素
    
    
        4>. 复制
            a = b ;            //将b向量复制到a向量中
    
    
        5>. 比较
            保持 ==、!=、>、>=、<、<= 的惯有含义 ;
            如: a == b ;    //a向量与b向量比较, 相等则返回1
    
    
        6>. 插入 - insert
            ①、 a.insert(a.begin(), 1000);            //将1000插入到向量a的起始位置前
            
            ②、 a.insert(a.begin(), 3, 1000) ;        //将1000分别插入到向量元素位置的0-2处(共3个元素)
            
            ③、 vector<int> a(5, 1) ;
                vector<int> b(10) ;
                b.insert(b.begin(), a.begin(), a.end()) ;        //将a.begin(), a.end()之间的全部元素插入到b.begin()前
    
    
        7>. 删除 - erase
            ①、 b.erase(b.begin()) ;                     //将起始位置的元素删除
            ②、 b.erase(b.begin(), b.begin()+3) ;        //将(b.begin(), b.begin()+3)之间的元素删除
    
    
        8>. 交换 - swap
            b.swap(a) ;            //a向量与b向量进行交换
    

    二,二维向量

    vector< vector<int> > b(10, vector<int>(5));        //创建一个10*5的int型二维向量
    

    三,内存管理与效率
    http://blog.csdn.net/hancunai0017/article/details/7032383

    参考:
    学习C++ -> 向量( vector )
    迭代器C++迭代器 iterator

    四。题目
    萌萌哒表情符号通常由“手”、“眼”、“口”三个主要部分组成。简单起见,我们假设一个表情符号是按下列格式输出的:
    左手[右手]
    现给出可选用的符号集合,请你按用户的要求输出表情。
    输入格式:
    输入首先在前三行顺序对应给出手、眼、口的可选符号集。每个符号括在一对方括号[]内。题目保证每个集合都至少有一个符号,并不超过10个符号;每个符号包含1到4个非空字符。
    之后一行给出一个正整数K,为用户请求的个数。随后K行,每行给出一个用户的符号选择,顺序为左手、左眼、口、右眼、右手——这里只给出符号在相应集合中的序号(从1开始),数字间以空格分隔。
    输出格式:
    对每个用户请求,在一行中输出生成的表情。若用户选择的序号不存在,则输出“Are you kidding me? @/@”。
    输入样例:[╮][╭][o][][/] [<][>] [╯][╰][][-][=][>][<][@][⊙][Д][▽][_][ε][] ...41 1 2 2 26 8 1 5 53 3 4 3 32 10 3 9 3
    输出样例:╮(╯▽╰)╭<(@Д=)/~o(ε)oAre you kidding me? @/@

    提交代码

    #include <iostream>
    #include <vector>
    using namespace std;
    int main() {
        vector<vector<string> > v;//二维
        for(int i = 0; i < 3; i++) {
            string s;
            getline(cin, s);//输入一行
            vector<string> row;
            int j = 0, k = 0;
            while(j < s.length()) {
                if(s[j] == '[') {
                    while(k++ < s.length()) {
                        if(s[k] == ']') {
                            row.push_back(s.substr(j+1, k-j-1));
                            break;
                        }
                    }
                }
                j++;
            }
            v.push_back(row);
        }
        int n;
        cin >> n;
        for(int i = 0; i < n; i++) {
            int a, b, c, d, e;
            cin >> a >> b >> c >> d >> e;
            if(a > v[0].size() || b > v[1].size() || c > v[2].size() || d > v[1].size() || e > v[0].size() || a < 1 || b < 1 || c < 1 || d < 1 || e < 1) {
                cout << "Are you kidding me? @\\/@" << endl;
                continue;
            }
            cout << v[0][a-1] << "(" << v[1][b-1] << v[2][c-1] << v[1][d-1] << ")" << v[0][e-1] << endl;
        }
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:vector PAT1052

          本文链接:https://www.haomeiwen.com/subject/heocrxtx.html