STL小代码之二

//使用容器将字符数组中的第一个单词逆序输出
#include<iostream>
#include<vector>
#include<algorithm>
#include<stack>
using namespace std;

int main(int argc,char *argv[])
{
char a[]={"apple orange watermelon"};
stack<char> charStack;
vector<char> vi(a,a+sizeof(a)/sizeof(char));
auto rcomma=find(vi.cbegin(),vi.cend(),' ');
for(auto i=vi.cbegin();i!=rcomma;i++)
{
charStack.push(*i);
}
while(!charStack.empty())
{
char value=charStack.top();
charStack.pop();
cout<<value<<endl;
}
return 0;
}

//将两个双向链表合并并输出
//list中的merge
#include<iostream>
#include<list>

using namespace std;

typedef list<int> LISTINT;

void printElem(list<int> a)
{
LISTINT::iterator plist;
for(plist=a.begin();plist!=a.end();plist++)
cout<<*plist<<endl;
}
int main(int argc,char *argv[])
{
int a1[]={1,2,3,4};
int a2[]={5,6,7,8};
list<int> va(a1,a1+4),vb(a2,a2+4);
va.merge(vb);
cout<<"调用list中的merge"<<endl;
cout<<"合并之后的va"<<endl;
printElem(va);
cout<<"合并之后的vb"<<endl;
printElem(vb); //合并之后list vb消失

return 0;
}


//algorithm中的merge
#include<iostream>
#include<list>
#include<algorithm>

using namespace std;

typedef list<int> LISTINT;

void printElem(list<int> a)
{
LISTINT::iterator plist;
for(plist=a.begin();plist!=a.end();plist++)
cout<<*plist<<endl;
}

int main(int argc,char *argv[])
{
int a1[]={1,2,3,4};
int a2[]={5,6,7,8};
int a3[8]={};
list<int> va(a1,a1+4),vb(a2,a2+4),vc(a3,a3+8);
merge(va.begin(),va.end(),vb.begin(),vb.end(),vc.begin());
cout<<"合并之后的va"<<endl;
printElem(va);
cout<<"合并之后的vb"<<endl;
printElem(vb);
cout<<"合并之后的vc"<<endl;
printElem(vc);

 

return 0;
}

转载于:https://www.cnblogs.com/Kevin-Heydn-Wong/p/5368003.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值