vector PAT1052

Vector 是在 java 中可以實(shí)現(xiàn)自動(dòng)增長的對(duì)象數(shù)組,vector在C++標(biāo)準(zhǔn)模板庫中的部分內(nèi)容,它是一個(gè)多功能的,能夠操作多種數(shù)據(jù)結(jié)構(gòu)和算法的模板類和函數(shù)庫。
一,基本操作

1>. a.size()                 //獲取向量中的元素個(gè)數(shù)


    2>. a.empty()                //判斷向量是否為空


    3>. a.clear()                //清空向量中的元素


    4>. 復(fù)制
        a = b ;            //將b向量復(fù)制到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個(gè)元素)
        
        ③、 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向量進(jìn)行交換

二,二維向量

vector< vector<int> > b(10, vector<int>(5));        //創(chuàng)建一個(gè)10*5的int型二維向量

三,內(nèi)存管理與效率
http://blog.csdn.net/hancunai0017/article/details/7032383

參考:
學(xué)習(xí)C++ -> 向量( vector )
迭代器C++迭代器 iterator

四。題目
萌萌噠表情符號(hào)通常由“手”、“眼”、“口”三個(gè)主要部分組成。簡單起見,我們假設(shè)一個(gè)表情符號(hào)是按下列格式輸出的:
左手[右手]
現(xiàn)給出可選用的符號(hào)集合,請(qǐng)你按用戶的要求輸出表情。
輸入格式:
輸入首先在前三行順序?qū)?yīng)給出手、眼、口的可選符號(hào)集。每個(gè)符號(hào)括在一對(duì)方括號(hào)[]內(nèi)。題目保證每個(gè)集合都至少有一個(gè)符號(hào),并不超過10個(gè)符號(hào);每個(gè)符號(hào)包含1到4個(gè)非空字符。
之后一行給出一個(gè)正整數(shù)K,為用戶請(qǐng)求的個(gè)數(shù)。隨后K行,每行給出一個(gè)用戶的符號(hào)選擇,順序?yàn)樽笫?、左眼、口、右眼、右手——這里只給出符號(hào)在相應(yīng)集合中的序號(hào)(從1開始),數(shù)字間以空格分隔。
輸出格式:
對(duì)每個(gè)用戶請(qǐng)求,在一行中輸出生成的表情。若用戶選擇的序號(hào)不存在,則輸出“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;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容