vector

vector

1.定义
  1. 定义int型数组

    例子说明
    vectora默认初始化,a为空
    vectorb(a)用a定义b
    vectora(100)a有100个值为6的元素
    vectora(100,6)100个值为6的元素
  2. 定义string型数组

    例子说明
    vectora(10,“null”)10个值为null的元素
    vectorvec(10,“hello”)10个值为hello的元素
    vectorb(a.begin(),a.end())b是a的复制
  3. 定义结构型数组

    例子说明
    struct point{int x,y};
    vector a
    a用来存坐标
  4. 常用操作

    功能例子说明
    赋值a.push_back(100)在尾部添加元素
    元素个数int size=a.size()元素个数
    是否为空bool Empty=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()排序从小到大
2.关于vector的使用示例

Problem Description()(hdu 4841)

​ 圆桌上围坐着2n个人。其中n个人是好人,另外n个人是坏人。如果从第一个人开始数数,数到第m个人,则立即处死该人;然后从被处死的人之后开始数数,再将数到的第m个人处死……依此方法不断处死围坐在圆桌上的人。试问预先应如何安排这些好人与坏人的座位,能使得在处死n个人之后,圆桌上围坐的剩余的n个人全是好人。

Input

​ 多组数据,每组数据输入:好人和坏人的人数n(<=32767)、步长m(<=32767);

Output

​ 对于每一组数据,输出2n个大写字母,‘G’表示好人,‘B’表示坏人,50个字母为一行,不允许出现空白字符。相邻数据间留有一空行。

Sample Input

​ 2 3

​ 2 4

Sample Output

​ GBBG

​ BGGB

Source

#include<vector>
#include<iostream>
using namespace std;

int main()
{
	int n, m;

	while (cin >> n >> m)
	{

		int size = 2 * n;

		vector<int>pop(size);
		for (int i = 0; i < 2 * n; i++)
			pop[i] = i;//初始化操作
		int flag = 0;
		while (pop.size() != n)
		{
			flag = (flag + m - 1) % pop.size();
			pop.erase(pop.begin() + flag);
		}//删除对应的坏人
		//按照需要的格式进行输出
		for (int i = 0, j = 0; i < 2 * n; i++)
		{
			
			if (j<n&&pop[j] == i)
			{
				cout << "G";
				j++;
			}
			else
				cout << "B";
			if (i != 0 && (i+1) % 50 == 0)
				cout << endl;
		}
		cout << endl << endl;
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值