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

创办一个网站多少钱企业网站群建设方案

创办一个网站多少钱,企业网站群建设方案,网站怎么设置二级域名,wordpress自定义幻灯#x1f469;#x1f3fb;‍#x1f4bb;作者:chlorine 目录 #x1f393;标准库类型vector #x1f393;定义和初始化vector的对象 #x1f4bb;列表初始化vector对象 #x1f4bb;创建指定数量的元素 #x1f576;️值初始化 ❗列表初始化还是值初始化#xf… ‍作者:chlorine 目录 标准库类型vector 定义和初始化vector的对象 列表初始化vector对象 创建指定数量的元素 ️值初始化 ❗列表初始化还是值初始化 向vector对象中添加元素 关键概念vector对象能高效增长 其他vector操作 计算vector内对象的索引 ️不能用下标形式添加数据 标准库类型vector vector标准库类型表示对象的集合其中所有对象的类型都相同。集合中的每个对象都有一个与之对应的索引索引用于访问对象。因为vector容纳着”其他对象所以它也常常被称作容器(container). 要想用vector必须包含适当的头文件再后续的例子中都将假定做了如下using声明 #includevector using std::vector; c语言既有类模板(class template),也有函数模板其中vector就是一个类模板。 只有对c有了深入的理解才能写出模板但是后期我们会学但是幸运的是我们即使不会创建类模板我们可以先试着去使用它。 模板本身不是类或函数相反可以将模板看作为编译器生成类或函数编写的一份说明。编译器根据模板创建类或函数的过程就是实例化当使用模板的时候需要指出编译器应把类或函数实例化称某种类型。 对于类模板来说我们通过提供一些额外信息来指定模板到底实例化成什么样的类需要提供哪些信息由模板决定提供信息的方式总是这样即在模板名字后面跟一对尖括号在括号内放上信息。以vector为例提供的额外信息是vector内所存放对象的类型 vectorintiverc;//iverc保存int类型的对象 vectorvectorintfile;//该向量的元素是vector对象注意vector是模板而非类型由vector生成的类型必须包含vector中元素的类型例如vectorint. 定义和初始化vector的对象 和任何一种类类型一样vector模板控制着定义和初始化向量的方法。 vectorT v1; //v1是空vector它潜在的元素是T类型的执行默认初始化. vectorT v2(v1);//v2中包含v1所有元素的副本 vectorT v2 v1;//等价于v2(v1),v2中包含v1所有元素的副本 vectorT v3(n, val);//v3包含了n个重复的元素每个元素的值都是val vectorT v4(n); //v4包含了n个重复执行了值初始化的对象 vectorT v5{a,b,c...}//v5包含了初始值个数的元素每个元素赋予了相应的初始值 vectorT v5{ a,b,c... } //等价于 v5{a,b,c...} 可以默认初始化vector对象从而创建一个指定类型的空vector。 vectorstring svec;//默认初始化svec不含任何元素 看起来空vector好像没什么用但是很快我们就会知道程序在运行时可以很高效地往往vector对象中添加元素事实上最常见地方式就是先定义一个空vector然后再运行地时候获取到元素地值后逐一添加。当然我们也可以再定义vector对象时指定元素地初始值。例如允许把一个vector对象地元素拷贝给另外一个vector对象。此时新vector对象地元素就是原vector对象对应元素地副本注意俩个vector对象地类型必须相同。 vectorint ivec;//初始状态为空 //再此处给ivec添加一些值 vectorintivec2(ivec); vectorintivec3 ivec; vectorstringsvec(ievc2);//错误svec的元素是string对象不是int 列表初始化vector对象 c11新标准还提供另外一种为vector对象的元素赋初值的方法即列表初始化。此时用花括号括起来的0个或多个初始元素值被赋给vector对象 vectorstring articles { a,an,the }; 上述vector对象包含三个元素第一个字符串a,第二个是字符串an,第三个字符串是“the”。 c提供了几种不同的初始化方式大多数情况瞎这些初始化方式可以相互的等价的使用不过也并非一直如此。其一使用拷贝初始化时(即使用时)只能提供一个初始值其二:如果提供的是一个类内初始值,则只能使用拷贝初始化或使用花括号的形式初始化。第三种特殊的要求是如果提供的是初始元素值得列表则只能把初始值都放在花括号里进行列表初始化而不能放在圆括号里 vectorstring v1{ a,an,the };//列表初始化 vectorstring v1( a,an,the );//错误创建指定数量的元素 还可以用vector对象容纳的元素数量和所有元素的统一初始值来初始化vecotor对象。 vectorint v1(10, -1);//10个int类型的元素每个值都初始化为-1 vectorstring svec(10, hi);//10个string类型的元素每个初始化为hi ️值初始化 通常情况下可以只提供vector对象容纳的元素数量而略去初始值此时库就会创建一个值初始化元素初值并把它赋给容器中的所有元素这个初值由vector对象中元素的类型决定。 如果vector对象的元素是内置类型比如int,则元素初始值自动设为0。如果元素是某种类类型比如string,则元素由类默认初始化 vectorint ivec(10);//10个元素每个都初始化为0 vectorstring svec(10);//10个元素每个都是空string对象 对这种初始化的方式有俩个特殊限制其一有些类要求必须明确提供初始值如果vector对象中元素的类型不支持默认初始化我们就必须提供初始化的元素值对这种类型的对象来说只提供元素的数量而不设定初始值无法完成初始化工作。 其二如果只提供了元素的数量而没有设定初始值只能使用直接初始化。 vectorint v110;//错误必须使用直接初始化的形式指定向量大小 这里的10是用来说明如何初始化vector对象的我们用它的本意是想创建含有10个值初始化了的元素的vector对象而非把数字10拷贝“到vector中因此此时不宜使用拷贝初始化。 ❗列表初始化还是值初始化 在某种情况下初始化的真正含义依赖于传递初始值时用的是花括号还是圆括号。 例如用一个整数来初始化vectorint时整数的含义可能是vector对象的容量也可能是元素的值。类似的用俩个整数来初始化vectorint时这俩个整数可能一个是vector对象的容量另一个是元素的初值也可能它们是容量为2的vector对象中的俩个元素的初值。通过使用花括号或圆括号可以区分上述这些含义 vectorint v1(10);//v1有10个元素每一个元素都是0(默认初始化vectorint v2{ 10 };//v1有1个元素该元素的值是10vectorint v3(10, 1);//v3有10个元素每个值都是1vectorint v4{ 10,1 };//v4有2个元素值分别是10和1 另一方面如果初始化时使用花括号的形式但是提供的值又不能用来列表初始化就要考虑用这样的值来构造vector对象了例如要想列表初始化一个含有string对象的vector对象应该提供能赋给string对象的初值。此时不难区分到底是要列表初始化vector对象的元素还是用给定的容量值来构造vector对象。 vectorstring v5{ h1 };//列表初始化v5有一个元素vectorstring v6(h1);//错误不能使用字符串字面值构建vector对象vectorstring v7{ 10 };//v7有10个默认初始化的元素vectorstring v8{ 10,h1 };//v8有10个值为h1的元素 向vector对象中添加元素 对vector对象而言直接初始化的方式适用于三种情况1.初始值已知且数量较少2.初始值是另一个vector对象的副本3.所有元素的初始值都一样。然而最常见的情况是有些时候即使元素的初值已知但如果这些值总量较大而各不相同那么在创建vector对象的时候执行初始化操作也会显得过于繁琐。 举个例子如果想创建一个vector对象令其包含从0到9共10个元素使用列表初始化的方法很容易做到一点但如果vector对象包含的元素是从0到99或者从0到999呢这时通过列表初始化把所有元素都一一罗列出来就不太合适了对于此例来说更好的处理方法是先创建一个空vector然后再运行的时再利用vector的成员函数push_back向其添加元素。push_back负责把一个值当成vector对象的尾元素压到(push)vector对象的尾端(back),例如 vectorint v1;for (int i 0; i 100; i){v1.push_back(i);//依次把整数值放到v2尾端}//循环结束后v2有100个元素值从0-99 在上例中尽管知道vector对象最后会包含100个元素但在一开始还是把它声明成空vector在每次迭代时才顺序地把下一个整数作为v1的新元素添加给它。 同样的如果直到运行的时候才能知道vector对象中元素的确切个数。也应该使用刚刚这种方法的创建vector对象并为其赋值。例如有时候需要实时读入数据然后将其赋予vector对象。 //从标准输入中输入单词将其作为vector对象的元素存储string word;vectorstringtext;//空vector对象while (cin word){text.push_back(word);//把word添加到text后面}for (auto e : text){cout e ;} 和之前的例子一样本例 也是先创建一个空vector之后依次读入未知数量的值并保存到vector中。 当执行程序时运行到while循环会一直读取字符读完字符后如果要结束此循环先按Enter键再按CtrlZ键最后按一次Enter键就能跳出while循环。 关键概念vector对象能高效增长 c标准要求vector应该能在运行时高效快速的增加元素因此既然vector对象能高效地增长那么在定义vector对象的时候设定其大小也就没什么必要了事实上如果这么做性能可能更差。只有一种例外情况就是所有(all)元素的值都一样。一旦元素的值各有不同更有效的方法就是先定义一个空的vector对象再在运行时向其添加具体值。 开始的时候创建空的vector对象在运行时再动态添加元素。 int v1;vectorint v;//定义一个空vector对象while (cin v1)//依次输入v1{v.push_back(v1);//然后v1的值依次存储再vector对象中}for (auto e : v){cout e ;} 其他vector操作 除push_back之外vector还提供了几种其他操作大多数都和string的相关操作类似。 v.empty() 如果v不含有任何元素返回真否则返回假 v.size() 返回v中元素的个数 v.push_back(t) 向v的尾端添加一个值为t的元素 v[n] 返回v的第n个位置上的元素的引用 v1v2 用v2中元素的拷贝替换v1中的元素 v1{a,b,c,d...} 用列表中元素的拷贝替换v1中的元素 v1v2 v1和v2相等当且仅当它们的元素数量相同且对应位置的元素值都相同 v1!v2顾名思义以字典顺序进行比较 访问vector对象中元素的方法和访问string对象中字符的方法差不多也是通过元素在vector对象中的位置。例如可以使用范围for语句处理vector对象中所有元素。 int main() {vectorint v{ 1,2,3,4,5,6 };for (auto i : v)//对于v中的每个元素(注意i是一个引用{i * i;//求元素值的平方}for (auto i : v) //对于v中的每个元素{cout i ;//输出该元素}cout endl;return 0; } 第一个循环给控制变量i定义成引用类型这样就能通过i给v的元素赋值其中i的类型由auto关键字指定。这里用到一个新的复合赋值运算符如我们所知把左侧运算对象和右侧运算对象相加结果存入左侧运算对象类似的*把左侧运算对象和右侧运算对象相乘结果存入左侧运算对象最后第二个循环输出所有的值。 vector的empty和size俩个成员与string的同名成员功能完全一致。empty检查vector对象是否包含元素然后返回一个布尔值size则返回vector对象中元素的个数返回值的类型是由vector定义的size_type类型。 要使用size_type需首先指定它是由哪种类型定义的vector对象的类型总是包含着元素的类型 vectorint::size_type //正确 vector::size_type //错误 各个相等性运算符和关系运算符也与string的相应的运算符功能一致。俩个vector对象相等当且仅当它们所含的元素个数相同而且对应位置的元素值也相同。关系运算符依照字典顺序进行比较如果俩个vector对象的容量不同但是在相同的位置上的元素值都一样则元素较少的vector对象小于元素较多的vector对象若元素的值有区别则vector对象的大小关系由第一对相异的元素值的大小关系决定。 只有当元素的值可比较时vector对象才能被比较。一些类如string等。确定定义了自己的相等性运算符和关系运算符。 计算vector内对象的索引 使用下标运算符能获取到指定的元素。和string一样。vector对象的下标也是从0开始记起下标的类型也是相应的size_type类型。只要vector对象不是一个常量就能向下标运算符返回的元素赋值。此外也能通过计算得到vector内对象的索引然后直接获取索引位置上的元素。 举个例子假设有一组成绩的集合其中成绩的取值从0到100以10分为一个分数段要求统计各个分数段各有多少个成绩。显然从0到100总共有101中可能的成绩取值这些成绩分布在11个分数段中每10个分数构成一个分数段这样的分数段有10个额外还有一个分数段表示满分100分。这样第一个分数段将统计成绩从0到9之间的数量第二个分数段将统计成绩在10到99之间的数量以此类推最后一个分数段统计满分100分的数量。 以10分为一个分数段统计成绩的数量0~910~19.....90~99,100(一共11个区间 在具体实现时使用一个含有11个元素的vector对象每个元素分别用于统计各个分数段上出现的成绩个数。对于某个成绩来说将其除以10就能得到对应的分数段的索引。注意俩个整数相除结果还是整数余数部分被忽略掉了。42/104....一旦计算得到了分数的索引就能用它作为vector对象的下标进而获取该分数段的计数值并加1。 vectorsize_t scores(11, 0);//11个分数段并初始化为0size_t grade;while (cin grade){if (grade 100) //只处理有效分数{scores[grade / 10]; //将对应的分数段的计数值1}}for (auto e : scores){cout e ;}scores[grade/10];俩者等价的 auto indgrade/10;//得到分数段的索引 scores[ind]scores[ind]1;//将计数值加1 ️不能用下标形式添加数据 刚接触c语言的程序员也许认为可以通过vector对象的下标形式来添加元素事实并非如此。下面的代码试图为vector对象ivec添加10个元素。 vectorint ivec;//空的vector对象for (decltype(ivec.size())ix 0; ix ! 10; ix){ivec[ix] ix;}for (auto e : ivec){cout e ;} 这段代码是错误的ivec是一个空vector根本不包含任何元素当然也就不能通过下标去访问任何元素如前所述正确的方法是使用push_back vectorint ivec;//空的vector对象for (decltype(ivec.size())ix 0; ix ! 10; ix){//ivec[ix] ix;//严重错误ivec不包含任何元素ivec.push_back(ix);}for (auto e : ivec){cout e ;} vector对象(以及string对象的下标运算符可用于访问已存在的元素而不能用于添加元素 提示只能对已存在的元素执行下标操作 关于下标必须明确的一点是:只能对确知已存在的元素执行下标操作 vectorintivec; //空vector对象 coutivec[0]; //错误ivec不包含任何元素vectorintivec(10); //含有10个元素的vector对象 coutivec[10]; //错误ivec元素的合法索引是从0~9 试图用下标的i形式去访问一个不存在的元素将引发错误。不过这种情况不会再编译的过程发现而是再运行时候产生一个不可预知的值。 确保下标合法的一种有效手段就是尽可能使用范围for 今天下雪了
http://www.zqtcl.cn/news/344877/

相关文章:

  • 浙江鼎兴建设有限公司网站wordpress看不到安装的主题
  • 琪觅公司网站开发c语言开发环境
  • 在哪个网站上做实验仪器比较好信息服务平台有哪些
  • 淘宝网站的建设目的是什么意思做雕塑设计的网站
  • 猎头网站模板个人社保缴费年限怎么查询
  • 博客网站设计及说明wordpress 显示 列表
  • 佛山制作手机网站莆田自助建站软件
  • 建邺做网站价格网站做换肤
  • 佛山有什么网站室内装饰设计怎么样
  • 智能建站与正常的网站购买 做网站 客户
  • 哪个是网络营销导向网站建设的基础微信商城开店需要费用吗
  • 宁波住房和建设局网站首页福州有做网站引流的吗
  • 国外科技类网站戴尔网站建设
  • 视频播放网站模板洞泾做网站公司
  • 深圳大学网站建设中美军事最新消息
  • gta5可用手机网站大全佛山网站建设服务
  • 智能建站软件哪个好智慧城市建设评价网站
  • 做网站用什么配资电脑织梦做的网站织梦修改网页模板
  • 手机网站制作吧网店营销策略
  • 管理员修改网站的参数会对网站的搜效果产生什么影响?网站建设新闻+常识
  • WordPress主题没有删除网站优化 工具
  • 建设外贸商城网站制作外国网站域名在哪查
  • 青浦练塘网站建设关键词优化的策略有哪些
  • 做网站链接怎么弄上海万户网络技术有限公司
  • 嵌入字体的网站网站结构和布局区别
  • 莆田网站建设五维网络有限公司零基础网站开发要学多久
  • 重庆官方网站查询系统2020最近的新闻大事10条
  • 中国网站建设公司排行榜成都彩票网站建设
  • 网站域名解析失败个人推广网站
  • 东莞网站建设网络公司排名卓业网站建设