vc中应用vector容器,计算速度过慢
vc中使用vector容器,计算速度过慢
我自己用vc写了个仿真程序,然后自己写了一个类来进行操作。
在需要用到50000个这样的类。一开始的时候我用一个数组来存储这些类。运算速度很快,可是后来改用vector容器后,速度就变慢了很多(只是使用vector承接我的类,除了初始化,还没用对容器里的元素进行添加删除操作),由于仿真程序对时间要求比较高,有没有什么办法在使用vector容器的情况下加快运行速度?
多谢各位大大指点!
------解决方案--------------------
vector不适合频繁地从尾部以外的位置插入删除(当然数组也不适合)。VC里STL不优化编译非常慢,如果现在是用debug跑的,换成release看看。如果还慢可以先试试list。如果还是不行就得研究具体情况了。
------解决方案--------------------
如果能预估最大内存占用,可以一次性给vector分配大的内存,而不用让它自动扩容。
------解决方案--------------------
debug和release是VC++的两个默认的configuration。对一个工程的操作需要很多参数,configuration就是用来保存和切换参数的。
debug的参数配置针对调试,release的参数配置针对发布。debug模式编译器优化是关闭的,这样生成的二进制代码忠实于源码,源码中每个步骤都能在二进制代码中体现出来,这样才能单步调试。release模式则会对代码进行优化,只保证结果和源码中的流程相同,但是大大提高了执行速度。另外,release模式还会关闭一些运行时检测的开关,并用宏禁用检测用的代码。
------解决方案--------------------
随机位置?还是任意位置? 如果是后者, 可以用list。 如果是随机位置的话,可能需要自己设计。
我自己用vc写了个仿真程序,然后自己写了一个类来进行操作。
在需要用到50000个这样的类。一开始的时候我用一个数组来存储这些类。运算速度很快,可是后来改用vector容器后,速度就变慢了很多(只是使用vector承接我的类,除了初始化,还没用对容器里的元素进行添加删除操作),由于仿真程序对时间要求比较高,有没有什么办法在使用vector容器的情况下加快运行速度?
多谢各位大大指点!
VC
类
c++
vector
------解决方案--------------------
vector不适合频繁地从尾部以外的位置插入删除(当然数组也不适合)。VC里STL不优化编译非常慢,如果现在是用debug跑的,换成release看看。如果还慢可以先试试list。如果还是不行就得研究具体情况了。
------解决方案--------------------
如果能预估最大内存占用,可以一次性给vector分配大的内存,而不用让它自动扩容。
------解决方案--------------------
debug和release是VC++的两个默认的configuration。对一个工程的操作需要很多参数,configuration就是用来保存和切换参数的。
debug的参数配置针对调试,release的参数配置针对发布。debug模式编译器优化是关闭的,这样生成的二进制代码忠实于源码,源码中每个步骤都能在二进制代码中体现出来,这样才能单步调试。release模式则会对代码进行优化,只保证结果和源码中的流程相同,但是大大提高了执行速度。另外,release模式还会关闭一些运行时检测的开关,并用宏禁用检测用的代码。
------解决方案--------------------
随机位置?还是任意位置? 如果是后者, 可以用list。 如果是随机位置的话,可能需要自己设计。