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相关推荐

  1. C++ stl vector介绍

    转自: STL vector用法介绍 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if ...

  2. STL vector的几种清空容器(删除)办法

    1.为什么需要主动释放vector内存 来自 <https://blog.csdn.net/hellokandy/article/details/78500067> vector其中一个特 ...

  3. STL vector 容器介绍

    介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用.通 ...

  4. STL vector的erase操作问题

    STL vector的erase操作问题 一老大说CSDN上有篇博文("关于STL vector的erase操作",地址是:http://blog.csdn.net/tingya/ ...

  5. STL vector容器

    介绍  这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用. ...

  6. 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 ...

  7. stl vector 函数_vector :: at()函数以及C ++ STL中的示例

    stl vector 函数 C ++ vector :: at()函数 (C++ vector::at() function) vector::at() is a library function o ...

  8. stl vector 函数_vector :: crend()函数以及C ++ STL中的示例

    stl vector 函数 C ++ vector :: crend()函数 (C++ vector::crend() function) vector::crend() is a library f ...

  9. stl vector 函数_vector :: pop_back()函数以及C ++ STL中的示例

    stl vector 函数 C ++ vector :: pop_back()函数 (C++ vector::pop_back() function) vector::pop_back() is a ...

  10. stl vector 函数_vector :: push_back()函数,以及C ++ STL中的示例

    stl vector 函数 C ++ vector :: push_back()函数 (C++ vector::push_back() function) vector::push_back() is ...

最新文章

  1. Mnist数据集简介
  2. 回炉重造-基础规则之类和对象
  3. 14nm芯片技术突破 中国集电关键装备实现从无到有
  4. 前端学习(2160):vuecli项目初始化过程
  5. STM32工作笔记0079---UCOSIII时间片轮转调度
  6. 【万字总结,花几分钟让你进一步了解指针】(学习笔记11--指针中)
  7. sqlplus必须要安装oracle吗,不安装oracle客户端使用sqlplus
  8. 实现一个文本文件的解析类(vector,字符串解析的应用)
  9. 使用MVPArms框架时,访问网络没响应。
  10. linux自带perl加密,关于加密:如何在Perl脚本中加密或隐藏密码?
  11. go TCP 粘包原理和解决方案
  12. Adaptive AutoSAR 标准介绍
  13. cmd 测试服务器通过延迟,网络延迟测试_怎么测试网络延迟?
  14. 大学毕业4年-回顾和总结(3)-投资理财观-图穷而真相现
  15. 速卖通韩国下载量再次登顶,7500万投资换来回报
  16. WordPress编辑器支持pdf上传
  17. 复旦计算机课程谁的好,复旦大学计算机研究生导师有哪些
  18. ESP32学习笔记(47)——加密算法AES/MD5/SHA
  19. requests模拟登录微信公众平台手机扫码确认
  20. python字符宽度_使用vars或\uyu dict的Python固定宽度字符串格式__

热门文章

  1. 每天一个linux命令(49):at命令
  2. SHOI2008仙人掌图(tarjan+dp)
  3. Java并发编程之CAS
  4. C#设计模式——适配器模式(Adapter Pattern)
  5. Mysql 索引原理及优化
  6. Eclipse中SVN的安装步骤(两种)和使用方法[转载]
  7. AcornCharts
  8. 网络攻城狮怎么看待TCP/IP协议与UDP协议?
  9. 企业级工作流解决方案(十五)--集成Abp和ng-alain--Abp其他改造
  10. TSQL:判定一段数组连续的数字段有多少的方案