网站程序开发外包北湖区网站建设哪家好

张小明 2026/1/12 15:23:25
网站程序开发外包,北湖区网站建设哪家好,wordpress图片分组,开个大型购物网站需要多少钱函数和string 对象 虽然C-风格字符串和string 对象的用途几乎相同#xff0c;但与数组相比#xff0c;string 对象与结构的更相似。例如#xff0c; 可以将一个结构赋给另一个结构#xff0c;也可以将一个对象赋给另一个对象。可以将结构作为完整的实体传递给 函数#xf…函数和string 对象虽然C-风格字符串和string 对象的用途几乎相同但与数组相比string 对象与结构的更相似。例如可以将一个结构赋给另一个结构也可以将一个对象赋给另一个对象。可以将结构作为完整的实体传递给函数也可以将对象作为完整的实体进行传递。如果需要多个字符串可以声明一个string 对象数组而不是二维char 数组。程序清单7.14 提供了一个小型示例它声明了一个string 对象数组并将该数组传递给一个函数以显示其内容。#include iostream #includestring using namespace std; const int SIZE 5; void display(const string sa[], int n); int main() { string list[SIZE]; cout Enter your SIZE favorite astronomical sights:\n; for (int i 0; i SIZE; i) { cout i 1 :; getline(cin, list[i]); } cout Your list:\n; display(list, SIZE); return 0; } void display(const string sa[], int n) { for (int i 0; i n; i) cout i 1 : sa[i] endl; }输出结果Enter your5favorite astronomical sights: 1:Orion Nebula 2:M13 3:Saturn 4:Jupiter 5:Moon Your list: 1:Orion Nebula 2:M13 3:Saturn 4:Jupiter 5:Moon对于该示例需要指出的一点是除函数getline( )外该程序像对待内置类型如int一样对待string对象。如果需要string 数组只需使用通常的数组声明格式即可string list[SIZE];这样数组list 的每个元素都是一个string 对象可以像下面这样使用它getline(cin,list[i]);同样形参sa 是一个指向string 对象的指针因此sa[i]是一个string 对象可以像下面这样使用它couti1:sa[i]endl;函数与array 对象在C中类对象是基于结构的因此结构编程方面的有些考虑因素也适用于类。例如可按值将对象传递给函数在这种情况下函数处理的是原始对象的副本。另外也可传递指向对象的指针这让函数能够操作原始对象。下面来看一个使用C11 模板类array 的例子。假设您要使用一个array 对象来存储一年四个季度的开支std::arraydouble,4expenses;本书前面说过要使用array 类需要包含头文件array而名称array 位于名称空间std 中。如果函数来显示expenses 的内容可按值传递expensesshow(expenses);但如果函数要修改对象expenses则需将该对象的地址传递给函数下一章将讨论另一种方法—使用引用fill(expenses);这与程序清单7.13 处理结构时使用的方法相同。如何声明这两个函数呢expenses 的类型为arraydouble, 4因此必须在函数原型中指定这种类型void show(std::arraydoule,4da); void fill(std::arraydouble,4*pa);这些考虑因素是这个示例程序的核心。该程序还包含其他一些功能。首先它用符号常量替换了4const int Seasons4;其次它使用了一个const array 对象该对象包含4 个string 对象用于表示几个季度const std::arraystd::string,SeasonsSnames{ Spring,Summer,Fall,Winter };请注意模板array 并非只能存储基本数据类型它还可存储类对象。程序清单7.15 列出了该程序的完整代码。#include iostream #includearray #includestring const int Seansons 4; const std::arraystd::string, SeansonsSnames { Spring,Summer,Fall,Winter }; void fill(std::arraydouble, Seansons* pa); void show(std::arraydouble, Seansonsda); int main() { std::arraydouble, Seansonsexpenses; fill(expenses); show(expenses); return 0; } void fill(std::arraydouble, Seansons* pa) { using namespace std; for (int i 0; i Seansons; i) { cout Enter Snames[i] expenses:; cin (*pa)[i]; } } void show(std::arraydouble, Seansonsda) { using namespace std; double total 0.0; cout \nEXPENSES\n; for (int i 0; i Seansons; i) { cout Snames[i] :$ da[i] endl; total da[i]; } cout Total expenses:$ total endl; }EnterSpringexpenses:212 EnterSummerexpenses:256 EnterFallexpenses:208 EnterWinterexpenses:244 EXPENSES Spring:$212 Summer:$256 Fall:$208 Winter:$244 Total expenses:$920递归下面介绍一些完全不同的内容。C函数有一种有趣的特点—可以调用自己然而与C 语言不同的是C不允许main( )调用自己这种功能被称为递归。尽管递归在特定的编程例如人工智能中是一种重要的工具但这里只简单地介绍一下它是如何工作的。包含一个递归调用的递归如果递归函数调用自己则被调用的函数也将调用自己这将无限循环下去除非代码中包含终止调用链的内容。通常的方法将递归调用放在if 语句中。例如void 类型的递归函数recurs( )的代码如下void recurs(argumentlist) { statements1 if(test) recurs(arguments) statements2 }test 最终将为false调用链将断开。递归调用将导致一系列有趣的事件。只要if 语句为true每个recurs( )调用都将执行statements 1然后再调用recurs( )而不会执行statements 2。当if 语句为false 时当前调用将执行statements2。当前调用结束后程序控制权将返回给调用它的recurs( )而该recurs( )将执行其stataments2 部分然后结束并将控制权返回给前一个调用依此类推。因此如果recurs( )进行了5 次递归调用则第一个statements1 部分将按函数调用的顺序执行5 次然后statements2 部分将以与函数调用相反的顺序执行5 次。进入5 层递归后程序将沿进入的路径返回。程序清单7.16 演示了这种行为。#include iostream void countdown(int n); int main() { countdown(4); return 0; } void countdown(int n) { using namespace std; cout Counting down ... n endl; if(n0) countdown(n-1); cout n :Kaboom!\n; }输出结果Counting down ...4 Counting down ...3 Counting down ...2 Counting down ...1 Counting down ...0 0:Kaboom! 1:Kaboom! 2:Kaboom! 3:Kaboom! 4:Kaboom!注意每个递归调用都创建自己的一套变量因此当程序到达第5 次调用时将有5 个独立的n 变量其中每个变量的值都不同。为验证这一点读者可以修改程序清单7.16使之显示n 的地址和值coutCounting down...n(n at n)endl; ... coutn:kaboom!; (n at n)endl;注意在一个内存单元内存地址为0012FE0C存储的n 值为4在另一个内存单元内存地址为0012FD34存储的n 值为3等等。另外注意到在Counting down 阶段和Kaboom 阶段的相同层级n 的地址相同。运行结果Counting down ...4 Counting down ...3 Counting down ...2 Counting down ...1 Counting down ...0 0:Kaboom! 1:Kaboom! 2:Kaboom! 3:Kaboom! 4:Kaboom!包含多个递归调用的递归在需要将一项工作不断分为两项较小的、类似的工作时递归非常有用。例如请考虑使用这种方法来绘制标尺的情况。标出两端找到中点并将其标出。然后将同样的操作用于标尺的左半部分和右半部分。如果要进一步细分可将同样的操作用于当前的每一部分。递归方法有时被称为分而治之策略divide-and-conquer strategy。程序清单7.17 使用递归函数subdivide( )演示了这种方法该函数使用一个字符串该字符串除两端为 | 字符外其他全部为空格。main 函数使用循环调用subdivide( )函数6 次每次将递归层编号加1并打印得到的字符串。这样每行输出表示一层递归。该程序使用限定符std::而不是编译指令using以提醒读者还可以采取这种方式。#include iostream const int Len 66; const int Divs 6; void subdivide(char ar[], int low, int high, int level); int main() { char ruler[Len]; int i; for (i 1; i Len - 2; i) { ruler[i] ; } ruler[Len - 1] \0; int max Len - 2; int min 0; ruler[min] ruler[max] |; std::cout ruler std::endl; for (i 1; i Divs; i) { subdivide(ruler, min, max, i); std::cout ruler std::endl; for (int j 1; j Len - 2; j) ruler[j] ; } return 0; } void subdivide(char ar[], int low, int high, int level) { if (level 0) return; int mid (high low) / 2; ar[mid] |; subdivide(ar, low, mid, level - 1); subdivide(ar, mid, high, level - 1); }运行结果
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

opencms做网站 谁网站建设及报价格方案

基于TensorFlow的大模型Token生成技术实现 在当前大模型驱动的AI浪潮中,一个常被忽视却至关重要的环节浮出水面:如何稳定、高效、一致地将人类语言转化为模型可理解的数字序列? 这个过程——即Token生成,看似是预处理中的“第一步…

张小明 2026/1/11 23:45:17 网站建设

为客户做网站的方案wordpress引用轮播图文件

接口被刷百万QPS 的防御策略 百万QPS 级别的“刷接口”(通常是应用层 CC 攻击或恶意高频请求)属于典型的 DDoS/CC 攻击变种,攻击者通过伪装合法请求(如高频调用 API)耗尽服务器资源(CPU、连接、数据库&…

张小明 2026/1/11 14:29:05 网站建设

行业网站制作荆州建设网站

macOS iSCSI 网络存储扩展方案:释放苹果电脑无限存储潜能 【免费下载链接】iSCSIInitiator iSCSI Initiator for macOS 项目地址: https://gitcode.com/gh_mirrors/is/iSCSIInitiator 想要突破Mac本地硬盘容量限制?macOS iSCSI Initiator正是你寻…

张小明 2026/1/11 9:14:04 网站建设

建设网站的企业邮箱百度联盟注册

uesave完整教程:解锁Unreal Engine游戏存档编辑新技能 【免费下载链接】uesave-rs 项目地址: https://gitcode.com/gh_mirrors/ue/uesave-rs 存档管理困境:玩家们共同的烦恼 在游戏世界里,你是否曾经面临这样的尴尬局面?…

张小明 2026/1/12 3:18:44 网站建设

如何增加网站的反链wordpress保存图片时加水印

文章目录具体实现截图主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!具体实现截图 本系统(程序源码数据库调试部署讲解)带文档1万…

张小明 2026/1/11 9:19:35 网站建设

陕西服装网站建设品牌咨询公司

如何在 TensorFlow 中实现循环学习率? 在深度学习模型训练中,一个看似微小却影响深远的超参数——学习率,常常决定着整个项目的成败。设得太大,损失震荡不收敛;设得太小,训练慢如蜗牛;而即便初始…

张小明 2026/1/9 13:23:42 网站建设