STL——vector
vector就是一个不定长数组。不仅如此,它把一些常用的操作“封装”在了vectir类型内部。
如a是一个vector,可以用如下操作
a.size()
a.push_back()
a.pop_back()
等等
下面通过一个题目来简单看一下vector的相关操作
木块问题:从做到右有n个木块,编号为0到n-1,要求模拟以下四种操作
move a onto b 把a和b上方的木块全部归位,然后把a摞在b上面
move a over b把a上方的木块全部归位,然后把a放在b所在木块的堆的顶部
pile a onto b把b上方的木块全部归位,然后把a及上面的木块整体摞在b上面
pile a over b把a及上面的木块整体摞在b所在木块堆的上面
代码如下
#include<cstdio>
#include<string>
#include<vector>
#include<iostream>
using namespace std;
const int maxn=30;
int n;
vector<int> pile[maxn];void find_block(int a,int& p,int& h){for(p=0;p<n;p++)for(h=0;h<pile[p].size();h++)if(pile[p][h]==a) return;
}void clear_above(int p,int h){for(int i=h+1;i<pile[p].size();i++){int b=pile[p][i];pile[b].push_back(b);}pile[p].resize(h+1);
}void pile_onto(int p,int h,int p2){for(int i=h;i<pile[p].size();i++)pile[p2].push_back(pile[p][i]);pile[p].resize(h);
}void print(){for(int i=0;i<n;i++){printf("%d:",i);for(int j=0;j<pile[i].size();j++) printf(" %d",pile[i][j]);printf("\n");}
}int main()
{int a,b;cin>>n;string s1,s2;for(int i=0;i<n;i++) pile[i].push_back(i);while(cin>>s1>>a>>s2>>b){int pa,pb,ha,hb;find_block(a,pa,ha);find_block(b,pb,hb);if(pa==pb) continue;if(s2=="onto") clear_above(pb,hb);if(s1=="move") clear_above(pa,ha);pile_onto(pa,ha,pb);}print();return 0;
}
转载于:https://blog.51cto.com/13642075/2092202
STL——vector相关推荐
- C++ stl vector介绍
转自: STL vector用法介绍 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if ...
- STL vector的几种清空容器(删除)办法
1.为什么需要主动释放vector内存 来自 <https://blog.csdn.net/hellokandy/article/details/78500067> vector其中一个特 ...
- STL vector 容器介绍
介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用.通 ...
- STL vector的erase操作问题
STL vector的erase操作问题 一老大说CSDN上有篇博文("关于STL vector的erase操作",地址是:http://blog.csdn.net/tingya/ ...
- STL vector容器
介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用. ...
- stl vector 函数_在C ++ STL中使用vector :: begin()和vector :: end()函数打印矢量的所有元素...
stl vector 函数 打印向量的所有元素 (Printing all elements of a vector) To print all elements of a vector, we ca ...
- stl vector 函数_vector :: at()函数以及C ++ STL中的示例
stl vector 函数 C ++ vector :: at()函数 (C++ vector::at() function) vector::at() is a library function o ...
- stl vector 函数_vector :: crend()函数以及C ++ STL中的示例
stl vector 函数 C ++ vector :: crend()函数 (C++ vector::crend() function) vector::crend() is a library f ...
- stl vector 函数_vector :: pop_back()函数以及C ++ STL中的示例
stl vector 函数 C ++ vector :: pop_back()函数 (C++ vector::pop_back() function) vector::pop_back() is a ...
- stl vector 函数_vector :: push_back()函数,以及C ++ STL中的示例
stl vector 函数 C ++ vector :: push_back()函数 (C++ vector::push_back() function) vector::push_back() is ...
最新文章
- Mnist数据集简介
- 回炉重造-基础规则之类和对象
- 14nm芯片技术突破 中国集电关键装备实现从无到有
- 前端学习(2160):vuecli项目初始化过程
- STM32工作笔记0079---UCOSIII时间片轮转调度
- 【万字总结,花几分钟让你进一步了解指针】(学习笔记11--指针中)
- sqlplus必须要安装oracle吗,不安装oracle客户端使用sqlplus
- 实现一个文本文件的解析类(vector,字符串解析的应用)
- 使用MVPArms框架时,访问网络没响应。
- linux自带perl加密,关于加密:如何在Perl脚本中加密或隐藏密码?
- go TCP 粘包原理和解决方案
- Adaptive AutoSAR 标准介绍
- cmd 测试服务器通过延迟,网络延迟测试_怎么测试网络延迟?
- 大学毕业4年-回顾和总结(3)-投资理财观-图穷而真相现
- 速卖通韩国下载量再次登顶,7500万投资换来回报
- WordPress编辑器支持pdf上传
- 复旦计算机课程谁的好,复旦大学计算机研究生导师有哪些
- ESP32学习笔记(47)——加密算法AES/MD5/SHA
- requests模拟登录微信公众平台手机扫码确认
- python字符宽度_使用vars或\uyu dict的Python固定宽度字符串格式__