当前位置: 首页 > news >正文

长春建网站一般要多少钱纸箱 技术支持 东莞网站建设

长春建网站一般要多少钱,纸箱 技术支持 东莞网站建设,百度短链接在线生成,西安北郊网站维护运营C 1、C标准库2、C标准模板库2.1、vector2.1.1、vector与array2.1.2、vector与函数对象2.1.3、vector与迭代器2.1.4、vector与算法 1、C标准库 C C C标准库指的是标准程序库( S t a n d a r d Standard Standard L i b a r a y Libaray Libaray)#xff0c;它定义了十个大类… C 1、C标准库2、C标准模板库2.1、vector2.1.1、vector与array2.1.2、vector与函数对象2.1.3、vector与迭代器2.1.4、vector与算法 1、C标准库 C C C标准库指的是标准程序库( S t a n d a r d Standard Standard L i b a r a y Libaray Libaray)它定义了十个大类其中包括我们比较熟悉的 i o s t r e a m , s t r i n g iostream, string iostream,string都是这十个大类的其中一个类中的一个小类。而 c c c的标准模板库也只是占了其中三个大类而已。 上面这十个类还只是一个些大类这十个大类下面还有51个小类。例如容器类下有这些小类 更多内容可以参考这篇文章链接: C标准库。 使用的时候由于十个大类是一个抽象集合本身是没办法调用的。我们只能调用这些大类下的小类且必须通过添加头文件的形式。同时 C C C标准强制头文件不要加 . h .h .h。下面是一些例子 #includeiostream //调用输入输出类中的标准输入输出类 #includestring //调用字符串类 #includevector //调用容器类中的vector #includequeue //调用容器类中的queue #includealgorithm //调用算法类2、C标准模板库 标准模板库( S T L : STL: STL: S t a n d a r d Standard Standard T e m p l a t e Template Template L i b r a r y Library Library)区别于标准库它是一组用于处理各种容器对象的模板提供了表示容器、迭代器、函数对象、和算法的模板。也就是说标准模板库是为服务容器而设计的。其中比较容易被忽略的是 a r r a y array array其实也是容器中的一种。 如上图所示迭代器、函数对象、算法它们虽然同属于 S T L STL STL库的基本组件但其实都是服务于容器的。 2.1、vector V e c t o r Vector Vector中文名是矢量的意思是容器类中最基础也是最重要的一个类。 2.1.1、vector与array 在 C C C中 v e c t o r vector vector和 a r r a y array array数组有很多相似之处它们都可以被用于存放某一类型的变量。下面则来看一个入门级别的应用——用vector存放特定类型的数值。 #includeiostream #includevector#define num 5 using namespace std;int main() {vectorint mycontain(num); //声明一个存放整形变量的vectorfor(int i0; inum; i){coutplease enter the i1 number : ;cinmycontain[i]; //跟往数组里面放数据一样往vector里面放数据}for(int i0; inum; i){coutmycontain[i] ;}cout\n;return 0; }2.1.2、vector与函数对象 v e c t o r vector vector比 a r r a y array array高级的地方莫过于它能和函数对象、算法以及迭代器结合起来使用下面直接通过一些例子了解 v e c t o r vector vector和一些常规函数对象的结合。 #includeiostream #includevectorusing namespace std;void print_vector(void); //define a function to print all of numbers in the vectorvectorint my_vector;int main() {int i,temp;//push some number into the vector and print all of themwhile(1){coutplease enter the i number : ;cintemp;my_vector.push_back(temp); //push_back( )一个往vector的末端添加数字的函数有且仅有一个输入参数。pd my_vector.end(); //end()返回值是vector末端的地址无输入参数。if(*(my_vector.end()-1) 0) break; //if the last number you enter is zero, the program will jump out the loop.}print_vector();//erase some numbers in the vector and print out the restmy_vector.erase(my_vector.begin(), my_vector.begin()2); //.erase( , )拆除vector中某一段数字有两个输入参数第一个是将要擦除的起始地址另一个是停止地址。//.begin()返回值是vector的首部地址无输入参数。print_vector();//insert a number into the vector and print all of them.my_vector.insert(my_vector.end(), 9); //.insert( , )往vector某个地方插入一个数字两个输入参数第一个是要插入的地址另一个是要插入的数字print_vector();return 0; }void print_vector(void) {for(int i0; imy_vector.size(); i) //.size()返回值vector的尺寸大小。{coutmy_vector[i] ;} cout\n; }看完代码再来根据解决代码中的几个疑惑点。其一在这句代码“if(*(my_vector.end() - 1) 0)”my_vector.end()的返回值是一个迭代器但我这里并没有定义一个迭代器去接收它的返回值而是直接调用该代码然后解引用。其实这样是合规的。其二同样是这句代码我为了拿到vector中的最后一个值我需要在尾部的地址基础上减去一。这是由vector的性质决定的我们来看看这个图。 如上图所示my_vector.end()拿到的并不是最后一个数据的地址而是内存中其他数据的地址。又由于vector的地址从尾部到首部呈现从高到低分布所以需要减一而非加一。 值得一提的是 v e c t o r vector vector的数据输入输出方式是从尾部输入从首部输出。并且当有新的数据输入进来的时候my_vector.end()的迭代器会指向新输入进来的数据。而不是新输入的数据取代原来尾部的数据这个理解尤为重要。 2.1.3、vector与迭代器 上文有提到过my_vector.begin()和my_vector.end()的返回值是一个迭代器并且这个迭代器可以像指针那样操作。便可以大概看出迭代器和指针颇为相似。但两者的区别是指针指向的必须是连续的内存空间但迭代器指向的可以是间断的内存空间。这是由于一些容器的内存分配可能零散导致的如图 容器的内存空间可能间断分布而为了准确寻找容器中的数据迭代器就应运而生了。不过迭代器也分为五个种类本人学识有限就只介绍可用于 v e c t o r vector vector的那一种。直接上个例子 #includeiostream #includevectorusing namespace std;int main() {vectorint my_vector;vectorint::iterator iter; //定义一个存放vectorint地址的迭代器int temp,i0;while(1){coutplease enter the i number : ;cintemp;my_vector.push_back(temp); //由于内存分布不完整当你没添加数据进去之前它压根不知道下一个数据在那个位置所以不能用my_vector[i]的方式赋值。iter my_vector.end(); //把尾部的地址传给迭代器iterif(*(iter-1) 0) break; //解引用迭代器以获得对象的值}for(i0; i my_vector.size(); i){iter my_vector.begin();cout*(iteri) ; //同上}cout\n;return 0; }2.1.4、vector与算法 这里的算法特指对vector内部数据进行处理的算法如排序、变换、打乱等。直接上代码看看一些常用的算法怎么用。由于算法部分内容太庞大了所以这几句话带过会显得十分草率。 #includeiostream #includealgorithm #includevector #includeiteratorusing namespace std;void vector_print(void); vectorint::iterator iter; int array[9] {1,5,2,7,9,11,3,6,2}; vectorint my_vector(array,array9);int main() { sort(my_vector.begin(), my_vector.end(), greaterint()); //输入参数为两个或者三个前两个参数为迭代器的始末值最后一个参数是排序标准。vector_print();random_shuffle(my_vector.begin(), my_vector.end()); //输入参数为两个前两个参数为迭代器的始末值。vector_print();vectorint::iterator temp find(my_vector.begin(), my_vector.end(), 9); //前两个参数为迭代器的始末值最后一个参数是要查找的值返回值也是一个迭代器。cout*tempendl;return 0; }void vector_print() {iter my_vector.begin();for(int i 0;imy_vector.size();i){cout*(iteri) ;}cout\n; }
http://www.dnsts.com.cn/news/34522.html

相关文章:

  • 网上做兼职的网站有哪些工作十大免费观看软件下载
  • 北京网站建设哪家公司好手机网站推广方案
  • wordpress可以建立多个站点金山做网站
  • 珠海工商年检到哪个网站做建设银行网银登录入口
  • 潍坊网站制作培训服装设计专业主要学什么
  • 可以自己做课程的网站四川省建设监理协会官方网站
  • 私人网站怎么注册十大免费推广平台
  • 网站开发的体会上海做网站的企业
  • 电商网站建设推荐ppt的制作方法
  • 旅游网站设计与实现中山微网站建设多少钱
  • 软件下载网站建设免费wordpress
  • 网站开发 技术路线wordpress在线查看word插件
  • 爱搜索中级网站建设电商线上培训
  • 湖州网站建设培训电脑网站 发展移动端
  • 北京哪里有专门做网站的地方商城网站建设需要
  • 视频网站后台管理系统个人电脑做网站服务器网站
  • 如何利用模板做网站汕头建站程序
  • 行业网站建设多少钱盘县做会计兼职的网站
  • 17一起做网站童装运城学院教务网络管理系统
  • 保定哪个公司做网站好静态网页框架用什么软件做
  • 医美的网站主页怎么做成都网站建设优化公司电话
  • 网站建设数据库怎么传送app应用开发公司
  • 成都网站建设价格一级网站和二级网站的区别
  • 长春三合一网站建设网站引用优酷
  • 临夏州住房和城乡建设局网站赚钱项目
  • 兴国网站建设网站建设域名所有权
  • 校园二手书交易网站开发怎样健网站
  • 网站建设费的税率小程序登录功能
  • 上海市城市建设工程学校网站做网站域名是什么意思
  • 东莞横沥网站设计海南住房与城乡建设部网站