uva11988
来源:互联网 发布:网络玄幻小说家排名 编辑:程序博客网 时间:2024/05/24 07:20
#include <iostream>#include <list>#include <stdio.h>#include <string.h>using namespace std;char c[100010];list<char> s;int main(){ while(~scanf("%s",c)) { s.clear(); list<char>::iterator it=s.begin(); int len=strlen(c); for(int i=0; i<len; i++) { if(c[i]=='[') it=s.begin(); else if(c[i]==']') it=s.end(); else s.insert(it,c[i]); } for(list<char>::iterator i=s.begin(); i!=s.end(); i++) printf("%c",(*i)); cout<<endl; } return 0;}
注意那个insert……的插入顺序!
我一开始写的是:
s.insert(it++,c[i]);//错误
参考以下代码
// inserting into a list#include <iostream>#include <list>#include <vector>int main (){ std::list<int> mylist; std::list<int>::iterator it; // set some initial values: for (int i=1; i<=5; ++i) mylist.push_back(i); // 1 2 3 4 5 it = mylist.begin(); ++it; // it points now to number 2 ^ mylist.insert (it,10); // 1 10 2 3 4 5 // "it" still points to number 2 ^ mylist.insert (it,2,20); // 1 10 20 20 2 3 4 5 --it; // it points now to the second 20 ^ std::vector<int> myvector (2,30); mylist.insert (it,myvector.begin(),myvector.end()); // 1 10 20 30 30 20 2 3 4 5 // ^ std::cout << "mylist contains:"; for (it=mylist.begin(); it!=mylist.end(); ++it) std::cout << ' ' << *it; std::cout << '\n'; return 0;}
阅读全文
0 0
- uva11988
- uva11988
- UVA11988
- UVA11988
- UVa11988
- UVa11988
- UVa11988
- uva11988
- UVA11988
- uva11988(链表)
- uva11988 链表
- 链表指针uva11988
- UVA11988 Broken Keyboard
- uva11988 broken keyboard
- UVA11988 Broken Keyboard 链表
- UVa11988(linked list)
- Uva11988 Broken Keyboard
- 数组链表-----uva11988
- 堆栈
- GTX960笔记本挖矿(NiceHash Miner),一天最多0.5美元!也就3块多
- HDU-4857 逃生
- 运输层端口及相关linux命令
- [ Java学习 ] 异常实验
- uva11988
- Intent的使用
- 棋盘问题 --dfs加回溯
- MATLAB 实现轨迹分类(路径分类)
- 用模板类迭代器实现顺序表
- MyBatis-逆向工程
- [译文]CSS的渲染性能
- 单例模式学习笔记
- Mybatis(输出映射)