STL小代碼之二

//使用容器將字符數組中的第一個單詞逆序輸出
#include<iostream>
#include<vector>
#include<algorithm>
#include<stack>
using namespace std;ios

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>app

using namespace std;spa

typedef list<int> LISTINT;it

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消失io

return 0;
}容器


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

using namespace std;gc

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;}

相關文章
相關標籤/搜索