【问题描述】
有 n 个人(每个人有一个唯一的编号,用 1~n 之间的整数表示)在一个水龙头前排队准备接水,现在第 n 个人有特殊情况,经过协商,大家允许他插队到第 x 个位置。输出第 n 个人插队后的排队情况。
视频讲解:https://v.youku.com/v_show/id_XNTA3NTc0MzE2OA==.html
【输入格式】
第一行 1 个正整数 n,表示有 n 个人,2<n≤100。第二行包含 n 个正整数,之间用一个空格隔开,表示排在队伍中的第 1~ 第 n 个人的编号。第三行包含 1 个正整数 x,表示第 n 个人插队的位置,1≤x<n。
【输出格式】一行包含 n 个正整数,表示第 n 个人插队后的排队情况。
7
7 2 3 4 5 6 1
3
7 2 1 3 4 5 6
赋值 |
a.push_back(100); |
在尾部添加元素 vector<int>a; |
元素个数 |
int size = a.size(); |
元素个数 |
是否为空 |
bool isEmpty = a.empty(); |
判断是否为空 |
打印 |
cout<<a[0]<<endl; |
打印第一个元素 |
中间插入 |
a.insert(a.begin()+i, k); |
在第i个元素前面插入k |
尾部插入 |
a.push_back(8); |
尾部插入值为8的元素 |
尾部插入 |
a.insert(a.end(), 10,5); |
尾部插入10个值为5的元素 |
删除尾部 |
a.pop_back(); |
删除末尾元素 |
删除区间 |
a.erase(a.begin()+i, a.begin()+j); |
删除区间[i, j-1]的元素 |
删除元素 |
a.erase(a.begin()+2); |
删除第3个元素 |
调整大小 |
a.resize(n) |
数组大小变为n |
清空 |
a.clear(); |
|
翻转 |
reverse(a.begin(), a.end()); |
用函数reverse翻转数组 |
排序 |
sort(a.begin(), a.end()); |
用函数sort排序,从小到大 |