for(i=0;i<2;i++){
cout<<"enterdelete";
cin>>item;
if((iter=h.find(item))==h.end())//注意括号
{cout<<"itemnotfind"<else
h.erase(iter);
}
cout<<"enterdelete";
cin>>item;
if((iter=h.find(item))==h.end())
{cout<<"itemnotfind"<else
h.erase(iter);
for(iter=h.begin();iter!
=h.end();iter++){
cout<<*iter<<"";
}
return0;
}
递归调用
#include
intf(intn);
usingnamespacestd;
intmain()
{
intn;
cin>>n;
cout<<"n位二进制数没有两个1相邻共有:
"<return0;
}
intf(intn){
if(n==1)
return2;
elseif(n==2)
return3;
else
returnf(n-1)+f(n-2);
}
map的基本用法
#include
#include
#include
usingnamespacestd;
intmain()
{
strings[]={"score","map","arrar","set","multmap","string"};
intsize=sizeof(s)/sizeof(string);
mapm;
pairp1(s[0],5);
pairp2(s[1],3);
pairp3(s[2],5);
pairp4(s[3],3);
pairp5(s[4],7);
pairp6(s[5],6);
m.insert(p1);
m.insert(p2);
m.insert(p2);
m.insert(p3);
m.insert(p4);
m.insert(p5);
m.erase("set");
map:
:
iteratoriter=m.begin(),te=m.find("score");
while(iter!
=m.end()){
cout<<(*iter).first<<"\t"<<(*iter).second<iter++;
}
cout<cout<<(*te).first<<""<<(*te).second;
return0;
}
quicksort
#include
#include
#include"d_util.h"
#include"d_sort.h"
#include"d_random.h"
usingnamespacestd;
intmain()
{
inti;
randomNumberran;
vectorv;
for(i=0;i<10;i++){
v.push_back(ran.random(100));
}
quicksort(v,0,v.size());
writeVector(v);
return0;
}
把学生信息输到文件中
#include
#include
usingnamespacestd;
structstudent{
intnum;
charname[10];
intenglish;
intmath;
intcomputer;
};
intmain(void){
inti;
structstudentstd[10]={
{1001,"王",98,97,96},
{1002,"李",87,97,98},
{1003,"赵",98,95,78},
{1004,"林",89,88,98},
{1005,"张",88,87,78},
{1006,"周",98,98,87},
{1007,"刘",76,98,87},
{1008,"钱",78,98,98},
{1009,"孙",98,95,98},
{1010,"郑",98,98,97}
};
ofstreamfile;
file.open("student.txt",ios:
:
out);
if(!
file){
cout<<"error";
}
file<<"学号"<<"姓名"<<"英语"<<"数学"<<"电脑"<for(i=0;i<10;i++){
file<}
file.close();
return0;
}
链表
1
#include
#include"d_node.h"
#include"d_nodel.h"
intmain(void){
node*p,*q,*r,*nextnode;
p=newnode('A');
q=newnode('X');
r=newnode('M');
r->next=p;
q->next=r;
writeLinkedList(q,"");
/*nextnode=q->next;
q->next=nextnode->next;
deletenextnode;*/
q->next=r->next;
deleter;//和屏蔽处等效
cout<<"eraseafterlistis:
";
while(q!
=NULL){
cout<nodeValue<<"";
q=q->next;
}
deletep,q,r;
return0;
}
2
#include
#include"d_node.h"
#include"d_nodel.h"
usingnamespacestd;
intmain(void){
node*front=NULL,*p,*q,*newnode,*nextnode;
intarr[]={80,45,10,25,50},i,size,t;
size=sizeof(arr)/sizeof(int);
for(i=0;inewnode=newnode(arr[i],front);
front=newnode;
}
front=newnode(30,front);
writeLinkedList(front,"->");
p=front->next->next->next;
nextnode=p->next;
p->next=nextnode->next;
deletenextnode;
cout<<"listoferaseafteris:
";
writeLinkedList(front,"->");
p=front;
while(p->next!
=NULL){
p=p->next;
}
cout<nodeValue<p=front;
while(p->next!
=NULL){
q=p->next;
t=p->nodeValue+q->nodeValue;
p->nodeValue=t;
p=q;
}
cout<<"cycleafterof";
writeLinkedList(front,"->");
return0;
}
双向链表
1
#include
#include"d_dnode.h"
#include"d_nodel.h"
usingnamespacestd;
intmain(void)
{
dnode*header=newdnode,*curr,*newnode;
newnode=newdnode
(2);
newnode->next=curr;
header->next->prev=curr;
newnode->prev=header;
header->next=newnode;
newnode=newdnode(5);
newnode->prev=header;
header->next->prev=curr;
newnode->next=curr;
header->prev=curr;
writeDLinkedList(header);
return0;
}
2
#include
#include"d_dnode.h"
#include"d_nodel.h"
usingnamespacestd;
template
voideraserange(dnode*first,dnode*last){
dnode*x,*y,*z;
x=first;
y=last;
z=x;
first->prev->next=last;
last->prev=first->prev;
while(z!
=y){
z=z->next;
deletex;
x=z;
}
}
intmain(void){
dnode*header=newdnode,*first,*last;
first=header;
inti,a,b;
for(i=0;i<10;i++){
insert(header,i+1);
}
cout<<"erasebeforethelistis:
"<writeDLinkedList(header,"->");
cout<";
cin>>a>>b;
for(i=0;ifirst=first->next;
}
last=first;
for(i=0;ilast=last->next;
}
eraserange(first,last);
cout<cout<<"eraseafterthethelistis:
"<writeDLinkedList(header,"->");
return0;
}
堆的基本用法
#include
#include
#include"d_heap.h"
#include"d_util.h"
#include"d_sort.h"
usingnamespacestd;
intmain()
{
inta[]={3,3,5,6,7,6,5},i,size=sizeof(a)/sizeof(int);
vectorvA,vB;
for(i=0;ivA.push_back(a[i]);
vB.push_back(a[i]);
/*pushHeap(vA,vA.size(),greater());
pushHeap(vB,vB.size(),less());*/
heapSort(vA,greater());//和屏蔽处等效
heapSort(vB,less());
}
cout<<"greaterorderis:
";
for(i=0;icout<}
cout<cout<<"lessorderis:
";
for(i=0;icout<}
return0;
}
toodel.h里各函数的用法
#include
#include"d_tnode.h"
#include"d_tnodel.h"
usingnamespacestd;
intmain(void){
intx=0;
tnode*root,*root1;
root=buildTree
(1);
cout<<"oringaltree(Teee1):
"<displayTree(root,1);
cout<<"inorderscan:
";
inorderOutput(root);
cout<cout<<"inlevelorderscan:
";
levelorderOutput(root);
cout<countLeaf(root,x);
cout<<"numberofleafnodeis:
"<cout<cout<<"numberofdepthnodeis:
"<cout<root1=copyTree(root);
cout<<"copyoftreeis(Tree1):
"<displayTree(root1,1);
deleteTree(root);
deleteTree(root1);
return0;
}
返回iterator
#include
#include
#include
#include
usingnamespacestd;
template
typenamelist:
:
iteratormaxIter(list&lis,intx){
typenamelist:
:
iteratoriter=lis.begin();
Ttemp;
inti=0,j=0,k,l;
for(l=0;liter++;
}
temp=*iter;
for(;iter!
=lis.end();iter++,i++){
if(*iter>temp){
temp=*iter;
j=i;
}
}
iter++;
for(k=0;kiter++;
}
returniter;
}
template
voidwritelist(list&lis){
typenamelist:
:
iteratoriter2;
for(iter2=lis.begin();iter2!
=lis.end();iter2++){
cout<<*iter2<<"";
}
}
intmain(void){
inta[10],i;
for(i=0;i<10;i++){
a[i]=rand()%25;
}
listlis(a,a+10);
list:
:
iteratoriter1,iter2;
for(i=0;iiter1=maxIter(lis,i);
lis.push_front(*iter1);
lis.erase(iter1);
}
writelist(lis);
return0;
}
集合的比较
1
#include
#include
#include"d_setops.h"
usingnamespacestd;
intmain(void){
inta[]={1,5,6,7,8,4,3},b[]={3,4,6,1,9,7,7,7};
intsize1=sizeof(a)/sizeof(int),size2=sizeo