社区
C++ 语言
帖子详情
怎样在程序中尽量少用循环语句,特别是FOR语句?
skhunter
2003-12-12 05:57:02
我是用PB编程的,在遇到大型数据库的时候,如果在信息量很大的话,使用FOR循环就会使程序运行的很慢,而客户是很挑剔的,总是要我给程序加速,可我又没有办法.
这几天用C++做底层程序的时候又遇到这个问题,大量的FOR循环降低了程序的运行速度,请问有高手知道怎样避免这个问题吗?
...全文
264
16
打赏
收藏
怎样在程序中尽量少用循环语句,特别是FOR语句?
我是用PB编程的,在遇到大型数据库的时候,如果在信息量很大的话,使用FOR循环就会使程序运行的很慢,而客户是很挑剔的,总是要我给程序加速,可我又没有办法. 这几天用C++做底层程序的时候又遇到这个问题,大量的FOR循环降低了程序的运行速度,请问有高手知道怎样避免这个问题吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lyr311
2003-12-14
打赏
举报
回复
分配高维数组的问题--》一个容易忽略的角落。用非循环的方法分配,免得大量的循环和大量的调用函数。
fefang2003
2003-12-14
打赏
举报
回复
是算法问题
短歌如风
2003-12-14
打赏
举报
回复
最关键的还是在算法上进行优化。比如如果你要再两组数据中寻找交集,直接操作的时间复杂度是O(N^2),但如果先排序然后再操作,总的时间复杂度就变成了O(N*Log(N)),这样在N很大时效果会非常明显。
smalltalk
2003-12-13
打赏
举报
回复
如果循环必不可少,可以考虑将循环你调用的函数改成inline 方式,这将有利于提高效率。
晨星
2003-12-13
打赏
举报
回复
还有,通常显示一个进程条会让用户稍微耐心一些。:)
晨星
2003-12-13
打赏
举报
回复
同意,不是循环的问题,通常有两种可能:
(1)你的流程设计(即算法)有问题,比如循环内外设置不合理,过多的重复计算等等。
(2)你要执行的任务过于复杂,已经没有什么优化的余地了。
liangshixing
2003-12-13
打赏
举报
回复
用goto吧
vcforever
2003-12-13
打赏
举报
回复
循环是不可避免的,我想应该是你在循环中处理数据的算法有问题!
优化一下你的算法!
lijun2044
2003-12-13
打赏
举报
回复
循环次数大的外循环放在内循环!
循环次数小的外循环放在外循环!
gernal_dn
2003-12-13
打赏
举报
回复
大量的FOR循环降低了程序的运行速度?
匪夷所思!!!
应该是算法的问题!
ilovedonny
2003-12-13
打赏
举报
回复
楼上的好主意,呵呵~
md2d
2003-12-13
打赏
举报
回复
如果是底层程序的话,看看是否在循环中过多和过平凡的访问了系统资源(如:外部设备,数据库连接等)
TinyAnt
2003-12-12
打赏
举报
回复
plainsong说得对,关键不是避免for循环,而是让for循环尽量快点,比如:
a = 100;
for (int i=0;i<100;i++)
{
b = myFun(a) * i;
......
}
写成:
a = myFun(100);
for (int i=0;i<100;i++)
{
b = a * i;
......
}
这样可以避免100次调用myFun(int)所产生的CPU时间浪费
cpsoft
2003-12-12
打赏
举报
回复
再看看有没有可以合并的循环
短歌如风
2003-12-12
打赏
举报
回复
>大量的FOR循环降低了程序的运行速度
检查你的算法。如果从算法上无法优化,循环是不可能去除的,只能想办法加快循环中的代码的性能了。看看有没有重复计算的内容,放到循环外;检查循环次数看能不能减少等。
skywarship
2003-12-12
打赏
举报
回复
专门开一个线程来执行功能,主线程处理界面,这样可以及时将处理结果反馈到用户
win10/win11共享打印机提示错误0x00000057,0x00000709,0x0000011b或者连接失败内存不足等故...
在Windows 10或Windows 11操作系统
中
,用户经常会遇到共享打印机时出现的一系列错误代码,这些错误代码可能会阻碍打印机共享功能的正常使用。常见的错误代码包括0x00000057、0x00000709和0x0000011b,这些代码通常指出了不同的问题,比如权限不足、服务未运行或配置错误等。除此之外,还有一些故障提示如“连接失败”或“内存不足”,这些都可能影响到打印机共享的稳定性。 要解决这些故障,首先要确保打印机已经正确地连接到网络,并且在需要共享的电脑上进行了设置。确保打印机驱动
程序
是最新的,并且在共享设置
中
没有错误配置。对于权限问题,需要检查网络上的用户账户是否具有足够的权限来访问共享打印机。同时,也要确保打印机服务正在运行,
特别
是“Print Spooler”服务,因为这是打印机共享服务的核心组件。 在某些情况下,问题可能与操作系统的更新有关,如升级到最新版的Windows 10或Windows 11后可能出现的兼容性问题。这时,可能需要查看微软的官方支持文档来获取特定的解决方案或更新。 对于错误代码0x00000057,这通常是由于没有足够的权限来访问网络打印机或其共享资源,解决方法是确保网络打印机的权限设置正确,包括在组策略
中
设置相应的访问权限。而0x00000709错误可能是由于打印机驱动问题或打印机端口配置错误,可以尝试重新安装或更新打印机驱动来解决。至于0x0000011b错误,这往往是因为打印机队列服务的问题,检查并重启“Print Spooler”服务通常是解决这类问题的常见手段。 至于“连接失败”或“内存不足”这类故障,通常与客户端和打印机之间的网络连接以及打印机本地资源的使用情况有关。检查网络连接,确保打印机所在的网络段没有故障或
中
断。同时,如果打印机的打印队列长时间得不到处理,可能会导致内存不足的情况,这时可能需要清理打印队列或增加打印机的内存配置。 为了帮助用户更快速地解决这些问题,市面上出现了各种打印机共享错误修复工具。这些工具往往通过预设的修复
程序
来自动检测和修正打印机共享
中
常见的问题。它们可以快速检查打印机驱动、网络连接以及共享设置,并且能够提供一键修复功能,大幅减少了用户自行排查和解决问题的难度。 然而,在使用这些修复工具之前,用户应确保这些工具的来源是安全可靠的,避免因使用不当的修复工具而引发其他系统安全或隐私问题。用户可以到官方平台或者信誉良好的软件提供商处下载这些工具。通过细心检查打印机的共享设置,及时更新驱动
程序
和服务,以及合理使用修复工具,大多数共享打印机的问题都可以得到有效的解决。
### 汽车车身密封条系统设计规范总结
内容概要:本文档提供了关于汽车车身密封条设计的全面指南,涵盖密封条的定义、分类、材料选择、结构设计、安装方式、生产工艺、设计流程及验证方法。具体内容包括密封条的分类依据密封功能和装配部位,详细介绍了EPDM、PVC、TPE等材料的性能特点及其生产工艺,强调了密封条设计
中
的关键参数如密封间隙、压缩量、压缩方向等,并通过典型断面设计和CAE分析确保设计合理性。此外,文档还详细描述了密封条在不同车身部位如发罩、行李箱、车门、玻璃导槽、前后风窗及顶盖的具体设计要求和注意事项。最后,文档列举了密封条设计和制造
中
的常见问题点,并提供了相应的解决方案。 适用人群:从事汽车车身设计、制造及质量控制的工程师和技术人员。 使用场景及目标:①帮助设计师理解并掌握不同类型密封条的设计要点和工艺要求;②指导工程师进行密封条的设计开发、材料选择及性能验证;③为生产和技术人员提供解决密封条常见问题的参考方案。 其他说明:文档内容详尽,结合大量
基于springboot+vue+mysql的疫苗发布和接种预约系统(源码+论文+开题报告).rar
采用前后端分离架构,包含数据库文件,代码经过完整测试,保证可以运行,内部包含详细的运行说明文档,如遇运行问题可私信博主。 本项目主要面向计算机相关专业
中
正在筹备大作业、毕业设计的学生,以及渴望通过实战项目提升编码能力的自学者,系统难度设计贴合教学需求,功能模块覆盖全栈开发核心知识点,所有代码与文档均经测试审核,学习者可放心下载参考或直接用于课程实践。
JAVA面试,知识总结
JAVA面试,知识总结
Huawei S6720EI-V200R023SPH220
Huawei S6720EI_V200R023SPH220,里面包含补丁说明书和补丁安装指导书,该补丁支持哪些型号,支持哪些版本可以安装当前补丁,请参考补丁说明书和补丁安装指导书。
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章