在性能方面,什么会更快?有什么不同吗?它依赖于平台吗?
//1. Using vector<string>::iterator:
vector<string> vs = GetVector();
for(vector<string>::iterator it = vs.begin(); it != vs.end(); ++it)
{
*it = "Am I faster?";
}
//2. Using size_t index:
for(size_t i = 0; i < vs.size(); ++i)
{
//One option:
vs.at(i) = "Am I faster?";
//Another option:
vs[i] = "Am I faster?";
}发布于 2009-04-22 11:34:57
如果您使用的是VisualStudio 2005或2008,为了从向量中获得最佳性能,您需要定义_SECURE_SCL=0
默认情况下,_SECURE_SCL是开的,这会使遍历容器的速度明显变慢。也就是说,在调试版本中将其保留为打开状态,将使跟踪任何错误变得更加容易。需要注意的是,由于宏会更改迭代器和容器的大小,因此您必须在共享stl容器的所有编译单元中保持一致。
https://stackoverflow.com/questions/776624
复制相似问题