//使用容器將字符數組中的第一個單詞逆序輸出
#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;}