挿入が速いんだそうだ!条件付で...
code:
#include <iostream>
#include <vector>
#include <string>
#include <chrono>
const int MAX_CNT = 1000*1000;
void add_push_back(void)
{
std::vector<std::string> vs;
auto start = std::chrono::system_clock::now();
for (int cnt = 0; cnt < MAX_CNT; cnt++) {
vs.push_back("abcdefghijklmnopqrstuvwxyz");
}
auto end = std::chrono::system_clock::now();
auto dur = end - start;
auto msec = std::chrono::duration_cast(dur).count();
std::cout << msec << " msec" << std::endl;
std::cout << vs.size() << " times" << std::endl;
}
void add_emplace_back(void)
{
std::vector<std::string> vs;
auto start = std::chrono::system_clock::now();
for (int cnt = 0; cnt < MAX_CNT; cnt++) {
vs.emplace_back("abcdefghijklmnopqrstuvwxyz");
}
auto end = std::chrono::system_clock::now();
auto dur = end - start;
auto msec = std::chrono::duration_cast(dur).count();
std::cout << msec << " msec" << std::endl;
std::cout << vs.size() << " times" << std::endl;
}
int main(int argc, char * argv[])
{
add_push_back();
add_emplace_back();
return 0;
}
実行結果
554 msec
1000000 times
512 msec
1000000 times
posted by zengaichi at 20:25|
Comment(0)
|
TrackBack(0)
|
Unix-Tools
|