码迷,mamicode.com
首页 > 其他好文 > 详细

CCF学生排队

时间:2020-03-07 12:37:50      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:野指针   ace   clu   cout   函数   mes   get   span   i++   

这题如果考虑考虑用数组折腾会非常麻烦,如果想到用vector的insert函数和erase函数就会非常舒服的模拟出来。vt.erase(it)之后it就变成了野指针,所以要用it=erase(it),这样it就会自动指向下一个元素。

#include<cstdio>
#include<iostream>
#include<vector>
#include<algorithm>
#include<string.h>
using namespace std;
int main()
{
    int n, k;
    cin >> n;
    getchar();
    cin >> k;
    vector<int>vt;
    int i;
    for (i = 0; i < n; i++)
    {
        vt.push_back(i+1);
    }
    int s, p;
    vector<int>::iterator it = vt.begin();
    while (k--)
    {
        cin >> s >> p;
        for (it=vt.begin(); it != vt.end(); it++)
        {
            if(*it==s)
            {
                it = vt.erase(it);
                vt.insert(it + p, s);
                break;
            }
        }
    }
    for (it = vt.begin(); it != vt.end(); it++)
    {
        cout << *it <<  ;
    }
    cout << endl;
}

 

CCF学生排队

标签:野指针   ace   clu   cout   函数   mes   get   span   i++   

原文地址:https://www.cnblogs.com/legendcong/p/12390085.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!