Vector 是在 java 中可以實(shí)現(xiàn)自動(dòng)增長(zhǎ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è)主要部分組成叉瘩。簡(jiǎn)單起見膳帕,我們假設(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;
}