小编ram*_*a_k的帖子

字符串向量与字符串指针向量的STL排序性能比较

我试图比较字符串向量和字符串指针向量的STL排序的性能.

我预计指针版本会跑赢大盘,但500万随机生成的字符串的实际结果是

字符串向量:12.06秒
指向字符串的向量:16.75秒

什么解释了这种行为?我期望交换指向字符串的指针应该比交换字符串对象更快.

通过转换随机整数生成500万个字符串.
编译(gcc 4.9.3):g++ -std=c++11 -Wall
CPU:Xeon X5650

// sort vector of strings
 int main(int argc, char *argv[])
    {
      const int numElements=5000000;
      srand(time(NULL));
      vector<string> vec(numElements);

      for (int i = 0; i < numElements; i++)
            vec[i] = std::to_string(rand() % numElements);

      unsigned before = clock();

      sort(vec.begin(), vec.end());

      cout<< "Time to sort: " << clock() - before << endl;

       for (int i = 0; i < numElements; i++)
         cout << vec[i] << endl;

      return 0;
    }



// sort …
Run Code Online (Sandbox Code Playgroud)

c++ string performance stl vector

3
推荐指数
1
解决办法
634
查看次数

标签 统计

c++ ×1

performance ×1

stl ×1

string ×1

vector ×1