資料優化效能之 c map的使用方法

2021-05-27 17:38:30 字數 2535 閱讀 4905

很多人都會遇到 在各個功能模組中遇到多個for迴圈相套導致慢、卡等現象,迴圈主要是 一對多查詢,經過一段時間查詢,終於找到一對一查詢的演算法;

map是c++的乙個標準容器,它提供了很好一對一的關係,在一些程式中建立乙個map可以起到事半功倍的效果,總結了一些map基本簡單實用的操作!

1. map建構函式;

mapmapstring; mapmapint;

mapmapstring; map< char ,string>mapchar;

mapmapchar; mapmapint;

2. map新增資料;

mapmaplive;

1.maplive.insert(pair(102,"aclive"));

2.maplive.insert(map::value_type(321,"hai"));

3, maplive[112]="april";//map中最簡單最常用的插入新增!

3,map中元素的查詢:

find()函式返回乙個迭代器指向鍵值為key的元素,如果沒找到就返回指向map尾部的迭代器。

map::iterator l_it;;

l_it=maplive.find(112);

if(l_it==maplive.end())

cout<<"we do not find 112"<::iterator l_it;;

l_it=maplive.find(112);

if(l_it==maplive.end())

cout<<"we do not find 112"<

#include

using namespace std;

int main( )

{map m1, m2, m3;

map ::iterator m1_iter;

m1.insert ( pair ( 1, 10 ) );

m1.insert ( pair ( 2, 20 ) );

m1.insert ( pair ( 3, 30 ) );

m2.insert ( pair ( 10, 100 ) );

m2.insert ( pair ( 20, 200 ) );

m3.insert ( pair ( 30, 300 ) );

cout << "the original map m1 is:";

for ( m1_iter = m1.begin( ); m1_iter != m1.end( ); m1_iter++ )

cout << " " << m1_iter->second;

cout << "." << endl;

// this is the member function version of swap

//m2 is said to be the argument map; m1 the target map

m1.swap( m2 );

6.map的sort問題:

map中的元素是自動按key公升序排序,所以不能對map用sort函式:

for example:

#include

#include

using namespace std;

int main( )

{map m1;

map ::iterator m1_iter;

m1.insert ( pair ( 1, 20 ) );

m1.insert ( pair ( 4, 40 ) );

m1.insert ( pair ( 3, 60 ) );

m1.insert ( pair ( 2, 50 ) );

m1.insert ( pair ( 6, 40 ) );

m1.insert ( pair ( 7, 30 ) );

cout << "the original map m1 is:"7, map的基本操作函式:

c++ maps是一種關聯式容器,包含「關鍵字/值」對

begin() 返回指向map頭部的迭代器

clear() 刪除所有元素

count() 返回指定元素出現的次數

empty() 如果map為空則返回true

end() 返回指向map末尾的迭代器

equal_range() 返回特殊條目的迭代器對

erase() 刪除乙個元素

find() 查詢乙個元素

get_allocator() 返回map的配置器

insert() 插入元素

key_comp() 返回比較元素key的函式

lower_bound() 返回鍵值》=給定元素的第乙個位置

max_size() 返回可以容納的最大元素個數

rbegin() 返回乙個指向map尾部的逆向迭代器

rend() 返回乙個指向map頭部的逆向迭代器

size() 返回map中元素的個數

swap() 交換兩個map

upper_bound() 返回鍵值》給定元素的第乙個位置

value_comp() 返回比較元素value的函式

使用Recoding Rules優化效能

通過promql可以實時對prometheus中採集到的樣本資料進行查詢,聚合以及其它各種運算操作。而在某些promql較為複雜且計算量較大時,直接使用promql可能會導致prometheus響應超時的情況。這時需要一種能夠類似於後台批處理的機制能夠在後台完成這些複雜運算的計算,對於使用者而言只需...

資料庫優化效能

今天搜尋了下開心農場的效能優化策略,看到其中有關資料庫優化有一條寫到 用update代替insert和delete,不是特別明白,於是搜尋之,發現有人給出這樣的解答 寫道用 update 代替 delete 在刪除行時,可以將行標示為 刪除 即可,此操作只需要 就地更新 操作,不需要執行 刪除 插入...

MySQL實現批量插入以優化效能的教程

對於一些資料量較大的系統,資料庫面臨的問題除了查詢效率低下,還有就是資料入庫時間長。特別像報表系統,每天花費在資料匯入上的時間可能會長達幾個小時或十幾個小時之久。因此,優化資料庫插入效能是很有意義的。經過對mysql innodb的一些效能測試,發現一些可以提高insert效率的方法,供大家參考參考...