stlSTL是应用基本概念和功能伟大作品其出现相当程度地改变了程序_第1页
stlSTL是应用基本概念和功能伟大作品其出现相当程度地改变了程序_第2页
stlSTL是应用基本概念和功能伟大作品其出现相当程度地改变了程序_第3页
stlSTL是应用基本概念和功能伟大作品其出现相当程度地改变了程序_第4页
stlSTL是应用基本概念和功能伟大作品其出现相当程度地改变了程序_第5页
已阅读5页,还剩127页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章STL第二节容器第三节迭代器第四节函数对象第五节算法第一节认识STL(StandardTemteLibrary,简写为STL)是C++标准库的一部分,最初有HP公司的ALexanderStepanov和MengLee开发,是一个例程6-#includeusing#includeusingnamespace te<typenameclassPlusNum(Tvoidoperator()(T}Tint{intintreturn 345678从某种意义上将,数据源就是数据结构,数组是简单的数组结构,vector相对复杂一些。在C++中,提供了选择,如:vector、型的数据,因此又被称为容器(container),有关容器的内容,可参考本章第二节。取出容器中的数据,交予算法处理,这取出之道为迭代器(Itor)。迭代器分为多种,如:输入迭代器、输出迭代器、前向迭代例程6-#include using#include usingnamespacetemte<class_FwdIt,classinlinevoidFILL(_FwdIt_First,_FwdIt_Last,const_Ty&_FILL(_First,_Last,}temte<class_FwdIt,class}temte<class_FwdIt,classinlinevoid_FILL(_FwdIt_First,_FwdIt_Last,const_Ty&cout<<"_FILLfor(;_First!=_Last;*_First}inlinevoid_FILLB(char*_First,char*_Last,intcout<<"_FILLmemset(_First,_Val,_Last-}inlinevoid_FILL(signedchar*_First,signedchar*_Last,intcout<<"_FILLmemset(_First,_Val,_Last-}inlinevoid_FILL(unsignedchar*_First,unsignedchar*_Last,intcout<<"_FILLmemset(_First,_Val,_Last-}int{intintreturn 第二节容器表6-1:STL表6-2表6-3例程6-usingusingnamespaceintclock_tintvector<int>for(intcout<<"elapsedtimeofmyVec:"<<end-list<int>for(intcout<<"elapsedtimeofmyList:"<<end-deque<int>for(intcout<<"elapsedtimeofmyDeque:"<<end-return}表6-4万万表6-5缺点:不支持随机,比vector占用的空间。例程6-usingnamespaceusingnamespaceintset<string> map<string,string> torreturn}例程6- te<typenameT1,typenamestruct te<typenameT1,typenamestructT1T2pair(constT1&Arg1,const例程6- te<typenameT1,typenameinline te<typenameT1,typenameinlinePair<T1,T2>make_Pair(constT1&Arg1,constreturn}return}例程6- using usingnamespacestructstringstringBook(stringisbn,stringbooloperator<(constBookreturnthis-}intset<Book> torcout<<(*p).bookISBN<<"map<string,Book>return}345678第26第28第33例程6-usingnamespaceusingnamespaceintmap<char,int> tor<char>} } torreturn 345678例程6- usingnamespacestructstringLevel;//stringstringfriendostream&operator<<(ostream&out,constJiaData&JD);//ostream&operator<<(ostream&out,constreturn}intJiaData678第9行 第33 for(JiaData } typedef for(JiaLevelIterJiaLevelIter JiaLevelIter for(JiaLevelIterreturn 第38 第41 第46

例程6-usingnamespacetypedefunsignedintlongpair<uInt,char>Division(uIntdividend,uInttemte<typenameT>voidExec(T&stackResult,uIntDividend,uIntintstack<char>stack<char,vector<char>stack<char,list<char>uInt cout<<Dividend<<"的八进制=";cout<<Dividend<<"的二进制=";return}pair<uInt,char>Division(uIntdividend,uInt}temte<typenamevoidExec(T&stackResult,uIntDividend,uIntuIntpair<uInt,char>}}temte<typenamevoidPrint(T5678第44}}}表6-7例程6-usingnamespaceusingnamespaceintqueue<int>for(int}return 345678容器适配器priority_queue称之为优先级队列,允许为队列中的元素素面。prirityqueue认使用<操作来定元间优先pioriy_queuvecoreque被

表6-8 例程6-usingnamespacestructusingnamespacestructintintintbooloperator<(constScore& }friendostream&operator<<(ostream&out,Scoreostream&operator<<(ostream&out,Scoreout<<"语文"<<rightSide.外语return}intfor(int}return}78第11第12 例程 usingnamespacestructintintintbooloperator<(constScore&第第第第第第第第行第10}friendostream&operator<<(ostream&out,Scoreostream&operator<<(ostream&out,Score<<"数学="<<rightSide.Math<<"总 ath);return}structbooloperator()(Score*Left,}structbooloperator()(Score*Left,}intconstintScorefor(intfor(int}for(int第53}return}}return}第三节迭代器第四节函数对象象也具备有先前调用结果的数据成员。在使用普通函数时需要将先前调用的结果在全程或者本地静态变量中,但是全程或者本地理一个参数,而第49行countIF()函数的功能是统计小于30的数值,LESS是一个对象,从其重载的括号运算符代码booloperator()(constT&Left,constT&Right)const{return(Left<Right);}能看出需要两个参数。这就出现了!在主函数中的countIF()函数使用bind2ND(与STL的bind2nd相似)函数将LESS的括号操作符中的第二个参数。例程#include#includeusingnamespace te<typename tor,typename intforifreturn}typedefResultubResuata;//结果参temte<typenameArg1,typenameArg2,typename第第第第 第第第第行第15temte<typenamestructLESS:publicBinaryBase<T,T,bool>{//小于,参考STL的lessbooloperator()(constT&Left,constT&Right)const{return te<typenameBinOPtypenameBinOP::bbSecondArgumentbinder2ND(constBinOP&Oper,consttypenameBinOP::bbSecondArgument&ubResuataoperator()(constubFirstArgument&ubArg1)const{returntemte<typenameBinOP,typenamebinder2ND<BinOP>bind2ND(constBinOP&OP,constreturnint{vector<int>for(intintreturn}第28 (Generator)、1个参数称之为一元函数(unaryfunction),2个参数称之为二元函数(binaryfunction)。另外,将判断真较大小返回表6-9例程usingnamespaceint{vector<int>for(intreturn 第第第第第第第第行表6-10:STL例程6-#include#include usingnamespaceusingnamespaceint{vector<int>for(intcout<<"\nBefore tor<int>(cout,"cout<<"\n\nAfterSorting.From tor<int>(cout,"cout<<"\n\nAfterSorting.From tor<int>(cout,"intintreturn 8表6-11:STL例程6-#include#includeusingusingnamespaceboollessThan(intA,intreturn}int{vector<int>for(intintintreturn}78例程#include#includeusingnamespaceclassRectangle(intW,intvoiddiscout<<"Width="<<Width<<"Height="<<Height<<"}第第第第第第行第11intintintint{vector<Rectangle>for(intvector<Rectangle*>for(int for(inti=0;i<50;++i)deletereturn 第30 第五节算法例程6-temte<typenameint tortemte<typenameint tortemte<typename tor,typenameint tor torEnd,boolFunction count、count_if:计数temte<typenameInputI tor,typenameT>typename tor torLast,const注:typename temte<typename tor,typenametypename tor torLast,UnaryPredicate注:typename 例程6- usingnamespaceboolisOdd(intN){returnstructbooloperator()(intN){returnintint>return 345678 lower_bound、upper_bound、equal_range:迭代器位置查找temte<typename tor,typenameT> torFirst, torLast,consttemte<typename tor,typenameT,typenameBinayPredicate> tor torLast,constT&Value,BinayPredicatetemte<typanem tor,typenameT> torFirst, torLast,consttemte<typename tor,typenameT,typenameBinaryPredicate> tor torLast,constT&Value,BinaryPredicatetemte<typename tor,typenameT> torFirst, torLast,consttemte<typename tor,typenameT,typename tor torLast,constT&Value,BinaryPredicate例程6-usingusingnamespaceboolmyGT(inta,intb){returnintint> tor<int>(cout,""));//输出2 tor tor345678第16第17第19第22第23第31 tor<int>(cout,"57 tor<int>(cout,"5777return} findfind_iftemte<typename tor,typename torFirst, torLast,consttemte<typename tor,typename torFirst, torLast,UnaryPredicate例程6- usingnamespaceboolisEven(inta){return(a%2==0);}//intint> tor return 345678⑷binary_searchtemte<typename tor,typename torFirst, torLast,consttemte<typename tor,typenameT,typename tor torLast,constT&Value,BinaryPredicate例程6-usingusingnamespaceboolisEven(inta){return(a%2==0);}//intint> tor<int>(cout,"boolreturn}345678⑸for_eachtemte<typenameInputI tor,typenameUnaryFunction>Function torFirst,InputI torLast,UnaryFunctionFun);例程6- te<classFunction tor te<classFunction tor torLast,Function}return第4}}例程6- usingnamespacevoidPrint(inta){cout<<a<<" te<typenamestructvoidoperator()(Tintint>return}3456789⑹mismatchtemte<typename tor1,typename tor2> tor1 tor1Last1, tor2temte<typename tor1,typename tor2,typename tor1, mismatch tor1 tor1 tor2First2,BinaryPredicate例程6- te<typename tor1,typename tor2,typename te<typename tor1,typename tor2,typename mismatch tor1 tor1return第4} 例程6-} 例程6-usingnamespacestructbooloperator()(inta,int(}intint> }}return2345678第40}} temte<typenamedataType>constmax(constdataType&leftSide,consttemte<typenamedataType,typenameBinaryPredicate>constmax(constdataType&leftSide,constdataType&rightSide,BinaryPredicatetemte<typename tor> torFirst, tortemte<typename tor,typename torfirst, torlast,BinaryPredicatetemte<typenamedataType>constmin(constdataType&leftSide,consttemte<typenamedataType,typenameBinaryPredicate>constmin(constdataType&leftSide,constdataType&rightSide,BinaryPredicatetemte<typename tor> torFirst, tortemte<typename tor,typename torfirst, torlast,BinaryPredicate例程6- te<typename tor,typename tor tor tor te<typename tor,typename tor tor torLast,BinaryPredicateif(First==Last)return torreturn}345678例程6- usingnamespacestructbooloperator()(inta,intbooloperator()(inta,int}intint> tor torint int return ⑻search_n、search:temte<typename tor,typenameSize,typename tor torLast,Sizecount,consttemte<typename tor,typenameSize,typenameT,typensameBinaryPredicate> tor torLast,Sizecount,constT&Value,BinaryPredicatetemte<typename tor1,typename tor2> tor1First1,ForwardI tor1Last1,ForwardI tor2First2,ForwardI temte<typenameForwardI tor1,typenameForwardI tor2,typenameBinaryPredicate>ForwardI tor1First1,ForwardI tor1Last1,ForwardI tor2First2,ForwardI Last2,BinaryPredicatePred);例程6- te<typename tor1,typename tor1 tor1 tor1 tor2 tor2if(First2==Last2)returnwhile tor1it1= tor2it2=while++it1; 789if(it2==Last2)returnif(it2==Last2)returnif(it1==Last1)return}}return}第第第第例程- usingnamespacestructbooloperator()(inta,intreturn}intint> cout<<"Not cout<<"Not vector<int> tor345678第21第23第24第26第28第33cout<<"Notcout<<"Not return} adjacent_find:查找连续两个相同元素temte<typename tor tortemte<class tor,class tor torLast,BinaryPredicate例程6-temte<typename tor tortemte<typename tor torFirst, torif(First!=++First;}}return}345678例程6-usingnamespaceusingnamespaceboolexactDivision5(inti,intreturn}intintintint345678第12returnreturn}⑽find_endtemte<typename tor1,typename tor1First1,ForwardI tor1Last1, tor2First2,ForwardI tor2Last2);temte<typename tor1,typename tor2,typename tor1 tor1 tor2 tor2Last2,BinaryPredicate例程6- te<typename tor1,typename tor2,typename tor1 tor1 te<typename tor1,typename tor2,typename tor1 tor1 tor2 tor2Last2,BinaryPredicateif(First2==Last2)return tor1 tor1 tor2++iter1;ifif(iter1==Last1)return}}return 345678第第第第第例程6-usingnamespaceboolusingnamespaceboolexactDivision(inta,intb){returnintintintintintint*;for(int}return}5678 find_first_of:元素出现在另外序列中temte<typename tor1,typename tor1First1,ForwardI tor1Last1, tor2First2,ForwardI tor2Last2);temte<typename tor1,typename tor2,typename tor1First1,ForwardI tor1Last1, tor2First2,ForwardI tor2Last2,BinaryPredicatePred);例程6- te<typename tor1,typename tor2,typename te<typename tor1,typename tor2,typename tor tor tor tor toriter=First2;it!=Last2;return}第7}return}}return}例程6-usingnamespaceusingnamespaceintstringmyWord="string torreturn 345678 equal:两个序列相等比较temte<typename tor1,typename tor1First1, tor1 tor2temte<typename tor1,tyepname tor2,typename tor1 tor1 tor2First2,BinaryPredicate例程6- te<typename tor1,typename tor2,typenamebool te<typename tor1,typename tor2,typenamebool tor1First1, tor1Last1, tor2First2,BinaryPredicatewhileif(!Pred(*First1,*First2))returnfalse;//第1种格式替换为*First1++First1;}return}例程6-usingnamespaceusingnamespacereturn(charA>=65&&}boolcomp(chara,charreturn}intstringstringboolreturn 45678第第第第第

⑴sort:temte<typename torFirst,RandomAccessI torLast);temte<typenameRandomAccessI tor,typenameBinaryPredicate>void tor torLast,BinaryPredicate例程6-usingusingnamespaceUpDown(intU=1,intbooloperator<(constUpDown&UD)const{//}friendostream&operator<<(ostream&out,constUpDownintostream&operator<<(ostream&out,constUpDownreturn}intint> tor<int>(cout,"UpDown tor<UpDown>(cout,"return}例程6-678第27第28

usingnamespacestd;structNameList{stringName;//NameList(stringid,string returnthis->ID<rightSide.ID;}returnthis->Name>rightSide.Name;} return( return}第44

voidprintA(constNameList&NL){cout<<NL.ID<<"-"<<NL.Name<<"- voidprintB(constNameList&NL){cout<<NL.Name<<"-"<<NL.ID<<"-"<<NL.<<endl;}voidprintC(constNameList&NL){cout<<NL.<<"-"<<NL.Name<<"-"<<NL.ID<<endl;}intmain(){NameList return}第54行是sortNameListRule()排序,在该函数中,首先按排序,然后按排序。 stable_sort:稳定排序temte<typename torFirst,Random tortemte<typename tor,typenameBinaryPredicate> tor torLast,BinaryPredicate例程6-usingusingnamespacestructstringID;//stringstringNameList(stringid,string booloperator<(constreturnthis-}voidprintC(constNameList&NL){cout<<NL.<<"-"<<NL.Name<<"-intNameList345678第10第11 第15第16第18return}⑶partial_sorttemte<typename tor tor tortemte<typenameRandomAccessI tor,typenameBinaryPredicate>void torFirst,RandomAccessI torMiddle, torLast,BinaryPredicatePred);例程6- usingnamespaceintvector<int> tor<int>(cout," tor<int>(cout,"第17 tor<int>(cout," tor<int>(cout,"vector<int> tor<int>(cout,"return partial_sort_copy:部分排序并拷贝temte<typename tor,typename torFirst,InputI torLast, torresultFirst,RandomAccessI torresultLast);temte<typename tor,typename tor,typenameBinaryPredicate> tor tor torresultFirst,RandomAccessI torresultLast,BinaryPredicate⑸partitiontemte<typename tor,typename tor torLast,UnaryPredicate例程6- usingnamespaceboolGroup(inta){returnintboolGroup(inta){returnintvector<int> tor<int>(cout," tori tor<int>(cout," tor<int>(cout,"return} stable_partition:稳定分组排序temte<typename tor,typename tor torLast,UnaryPredicate例程6- using usingnamespaceboolGroup(inta){returnintintvector<int> tori tor<int>(cout,"//输出为:97573286345678第14return}return}⑺nth_element:n的元temte<typename torFirst, tornth, tortemte<classRandomAccessI tor,typenameBinaryPredicate>void torFirst,RandomAccessI tornth,RandomAccessI Last,BinaryPredicatePred);例程6- usingnamespaceintvector<int>for(intint tor<int>(cout," tor<int>(cout,"return 345678第第第第第⑴set_difference:差集temte<typenameInputI tor1,typenameInputI tor2,typenameOutputI tor1First1,InputI tor1Last1,InputI tor2First2,InputI torResult);temte<typename tor1,typename tor2,typename tor,typename tor1 tor1 tor2 tor2 torResult,BinaryPredicate例程6- usingnamespaceint //输出:91521 tor<int>(cout,"第15第16第18第19第21第37//输出:3//输出:35711131719 tor<int>(cout,"//输出:2357911131517192123 tor<int>(cout,"//输出:291521 tor<int>(cout,"//输出:23355779111113131517171919212323 tor<int>(cout,"//输出:2357 911131517192123in tor<int>(cout,"//输出:23355779111113131517171919212323return}第80⑵set_intersection:交集temte<typename tor1,typename tor2,typename tor> tor1First1,InputI tor1Last1, tor2First2,InputI tor2Last2,OutputI torResult);temte<typename tor1,typename tor2,typename tor,typename tor1 tor1 tor2 tor2 torResult,BinaryPredicate⑶set_union:并集temte<typename tor1,typename tor2,typename tor> tor1 tor1 tor2 tor2 tortemte<typename tor1,typename tor2,typename tor,typename tor1 tor1 tor2 tor2 torResult,BinaryPredicate⑷set_symmetric_differencetemte<typename tor1,typename tor2,typename tor> tor1First1,InputI tor1Last1, tor2First2,InputI tor2Last2,OutputI torResult);temte<typename tor1,typename tor2,typename tor,typename tor1 tor1 tor2 tor2 torResult,BinaryPredicate merge:合并temte<typename tor1,typename tor2,typename tor1First1,InputI tor1 tor2 tor2 tortemte<typename tor1,typename tor2,typename tor,typename tor tor1 tor1 tor2 tor2 torresult,BinaryPredicate⑹ince_merge:归并排 intemte<typename in torFirst, tor tortemte<typenameBidirectionalI tor,typenameBinaryPredicate>voidince_merge(BidirectionalI torFirst,BidirectionalI torMiddle, torLast,BinaryPredicatePred); includes:子序列包含判断temte<typename tor1,typename tor2> tor1 tor1 tor2 tor2temte<typename tor1,typename tor2,typenameBinaryPredicate> tor1 tor1 tor2 tor2Last2,BinaryPredicate例程6- usingnamespaceintint>boolreturn 345678第第第第第移出元素时还能执行拷贝,并可按条件移出元素。如例程6-49所示。例程6-usingnamespaceusingnamespacestructbooloperator()(inta){returnint for(intint for(int tor<int>(cout," tor<int>(cout," tor tor<int>(cout," tor<int>(cout," > tor<int>(cout,"return}例程6-usingnamespaceusingnamespacestructbooloperator()(inta){returnint for(int re tor<int>(cout,"re tor<int>(cout,"rereturn}第12 temte<typenameT>voidswap(T&valueA,T&valueB);temte<typenameForwardI tor1,typenameForwardI tor1i,ForwardI tor2iterB);temte<typename tor1,typename tor1 tor1 tor2 usingnamespaceintintcout<<"a="<<a<<"cout<<"a="<<a<<"intint 中的第个 tor<int>(cout," //arrNum序列:1514153um序列:1214123 tor<int>(cout,"return345678第17第18第20第21第24第29例程6-temte<typename tor1,typename tor2 tor1 tor1 tor2while(First1!=Last1)swap(*First1,}return}例程6-}using}usingnamespacestructintintoperator()(){returnintrandNum(){returnintvector<int> tor<int>(cout,"//输出:999999999999999999temte<typename tor,typename tor torLast,consttemte<typenameOutputI tor,typenameCount,typenameT>void torFirst,Countn,constT&Value);temte<typenameForwardI tor,typenameGenerator>void torFirst,ForwardI torLast,GeneratorgenFun); te<typename tor,typenamevoid tor tor te<typename tor,typenamevoid tor torLast,Generator}}例程6-第1 第2第3第4第5第6第1例程6-23456789第10第11第12第13第14第15第16第17//输出:111111//输出:111111111199999999//输出:123456789//输出:416734069678910,return}11、reverse、reverse_copytemte<typename tor tortemte<typename tor,typename tor tor tor例程6- usingnamespaceintintintvector<int> tor<int>(cout," tor<int>(cout," tor<int>(cout,"345678第17return}return}12、rotate、rotate_copytemte<typename tor tor tortemte<typename tor,typename tor tor tor tor例程6- usingnamespaceintintintvector<int> tor<int>(cout,"//输出:13482945 tor<int>(cout,"//输出:829452313//输出:829452313 tor<int>(cout,"//输出:829452313 tor<int>(cout,"//输出:452313482return}678第18第19第22第24第26第30temte<typename tor tortemte<typename tor,typename tor torLast,BinaryPredicatetemte<typename tor,typename unique_copy torFirst, tor tortemte<typename tor,typename tor,typename torFirst, tor torResult,BinaryPredicate例程6-usingusingnamespaceintintintvector<int> tor<int>(cout," tor<int>(cout," tor<int>(cout,"vector<int> tor<int>(cout,"345678第22第24第28 tor<int>(cout," tor<int>(cout," tor<int>(cout,"return}temte<typename tor,typename tor,typename tor tor torResult,UnaryOperationtemte<typename tor1,typename tor2,typename tor,typename transform(InputI tor1First1,InputI tor1Last1,InputI tor2First2, torResult,BinaryOperationBinaryOP);例程6- te<typename tor,typename tor,typename tor te<typename tor,typename tor,typename tor tor tor torResult,UnaryOperator}return}例程6-usingusingnamespacestructintorderNum;//createNum(intfirstNum,int345678第11intreturn}intreturn}intstring vector<int> tor<int>(cout,"//输出:35791113151719 tor<int>(cout,"//输出:24681012141618 //输出:5913172125293337return}于。temte<typename tor,typename torFirst, torLast, tortemte<typenameBidirectionalI tor1,typenameBidirectionalI tor1First,BidirectionalI tor1Last,BidirectionalI 例程6- te<typenametor,typename te<typenametor,typename tortortortorwhile}return}return}temte<typename tor1,typename temte<typename tor1,typename tor2 tor1 tor1tor2return} usingnamespaceintintintvector<int> tor<int>(cout," tor<int>(cout,"return 345678第第第第第

例程-例程6-temte<typename tor tortemte<typenameRandomAccessI tor,typenameRandomNumberGenerator>void torFirst,RandomAccessI torLast,RandomNumberGenerator&Gen);例程6-temte<typename tor,typename temte<typename tor,typename n=(last-for(i=n-1;i>0;--}}例程-usingusingnamespaceintmyRand(inti){returnintintintvector<int> tor<int>(cout," tor<int>(cout,"return 345678第第第第第图6-1大根堆示意图

据第一个元素值的不同,堆分为大根堆(maxheap)和小根堆(min优先队列)顾名思义,图6-2小根堆示意图

pop_heap()用于从heap出第1个元素;sort_heap()用于排序 um中的数据符合maxheap特征;在执行 例程6-usingusingnamespaceintintint //输出:10036319252117 //输出:123100 //输出:100363192521177345678第21第22第23第25第28 //输出:123return}temte<typename tor tortemte<typenameRandomAccessI tor,typenameBinaryPredicate>void torFirst,RandomAccessI torLast,BinaryPredicatePred);temte<typename tor tortemte<typenameRandomAccessI tor,typenameBinaryPredicate>void torFirst,RandomAccessI torLast,BinaryPredicatePred);temte<typename tor tortemte<typenameRandomAccessI tor,typenameBinaryPredicate>void torFirst,RandomAccessI torLast,Binar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论