久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 3056|回復: 0
打印 上一主題 下一主題
收起左側

stl::vector使用心得

[復制鏈接]
跳轉到指定樓層
樓主
ID:3721 發表于 2015-1-5 14:31 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
1、同類型vector之間拷貝數據使用push_back還是insert
此問題貌似很搞笑,但請看完示例:
const   int   Num   =   5000000;
DWORD   s, d;
vector <int>   v, w( 5000000, 0 );
v.reserve(5000001);
現在將w中的數據全部拷貝到v中,即以下兩種情況對比:
s   =   GetTickCount();
for ( int i = 0; i < Num; ++ i )
{
        v.push_back( v[ i ] );
}
d   =   GetTickCount();

s   =   GetTickCount();
v.insert( v.end(), w.begin(), w.end() );
d   =   GetTickCount();
可以自己試試看看d-s的值,請多試幾次做做統計,歸納得出insert能省一半左右的時間……
心得:vector之間拷貝數據時批量操作很省時間,但若數據量很少,其實也無所謂,當數據量在10W以下,本身就花不了多少時間。
2、要首尾操作用vector還是deque
這個問題貌似還要搞笑,請繼續看完示例:
const   int   Num   =   10000;
int  aaaaaaaa;
DWORD   s, d;
vector <int>   v,
v.reserve(5000001);
deque <int>     q;
現在比較下面兩段程序的運行時間:
s   =   GetTickCount();
for   (int   i   =   0;   i   <   6000;   i++)
{
            for   (int   j   =   0;   j  <   Num;   j++)
            {
                    v.push_back(j);
            }
            for   (int  j   =   0;   j   <   Num;   j++)
            {
                    aaaaaaaa = v[j];
            }
            v.erase(v.begin(), v.end() - Num/2);
}
d   =   GetTickCount();

s   =   GetTickCount();
for   (int   i   =   0;   i   <   6000;   i++)
{
            for   (int   j   =   0;   j  <   Num;   j++)
            {
                    q.push_back(j);
            }
            for   (int  j   =   0;   j   <   Num;   j++)
            {
                    aaaaaaaa = q[j];
            }
            q.erase(q.begin(), q.end() - Num/2);
}
d   =   GetTickCount();
對比試驗結果,讓宣稱需要首尾操作首選的deque情何以堪,需要花費vector十倍左右的時間。
有經驗的同志們仔細看看就能明白我這里模擬的是什么,對,就是數據采集、讀取、刪除的不間斷操作。當然v.reserve(5000001);語句功不可沒啊!vector連續存儲,刪除起來自然快。
心得:批量處理,我熱愛vctor!!!若需要每采集一個數據讀取刪除一個,那么還是deque占優勢的,我這里回避了deque單個處理時的pop_front()函數。
實際使用什么,自然要根據實際情況加以判斷,我寫這些就是想發泄一下!以前一個老工程師總和我說deque好deque快,首尾操作用deque……可在我們公司的使用現狀下,我不覺得deque好在哪。這也算是一個小小的抗議吧……

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品一区在线观看 | 国产精品欧美在线 | 亚洲黄视频 | 特黄av| 一级片在线观看视频 | 男人爱看的网站 | 国产一级免费视频 | 91久久国产综合久久91精品网站 | 国产欧美一区二区精品性色超碰 | av一区二区三区 | 国产91色 | 国 产 黄 色 大 片 | 亚洲欧美日韩国产精品 | 在线播放毛片 | 黄色一级片免费 | 久久免费视频网站 | 免费av网站在线观看 | 黄视频网站在线观看 | 国产小视频在线观看 | 欧美日韩在线一区二区 | 国产美女自拍视频 | 国产在线www | 欧美一级特黄aaaaaa | 午夜看看| 六月婷婷综合 | 一级片毛片 | 成人一级黄色片 | 国产伦精品一区二区免费 | 国产精品免费在线 | 国产天堂av | 欧美一级视频 | 超碰在线国产 | 欧美日韩在线一区 | 一级片免费视频 | 久久午夜视频 | 精品亚洲一区二区 | 99热最新网址 | 欧美日韩精品一区二区 | 亚洲综合视频在线观看 | 99精品色| 欧美日韩国产在线观看 |