map容器元素的三種插入方式

2021-06-21 03:08:57 字數 1652 閱讀 7178

stl中的map容器是我經常用的,但是因為map跟別的容器不太一樣,每次用的時候對於map中元素的插入方式總是忘卻,故而發篇博文,提醒我也提醒所有人map容器的三種插入方式:

第一種:用insert函式插入pair資料。下面舉例說明:

#include

#include

#include

using namespace std;

int main()

}第二種:用insert函式插入value_type資料,下面舉例說明:

#include

#include

#include

using namespace std;

int main()

}第三種:用陣列方式插入資料,下面舉例說明:

#include

#include

#include

using namespace std;

int main()}

以上三種用法,雖然都可以實現資料的插入,但是它們是有區別的,當然了第一種和第二種在效果上是完成一樣的,用insert函式插入資料,在資料的插入上涉及到集合的唯一性這個概念,即當map中有這個關鍵字時,insert操作是插入資料不了的,但是用陣列方式就不同了,它可以覆蓋以前該關鍵字對應的值,用程式說明:

mapstudent.insert(map::value_type (1, "student_one"));

mapstudent.insert(map::value_type (1, "student_two"));

上面這兩條語句執行後,map中1這個關鍵字對應的值是「student_one」,第二條語句並沒有生效,那麼這就涉及到我們怎麼知道insert語句是否插入成功的問題了,可以用pair來獲得是否插入成功,程式如下

pair::iterator, bool> insert_pair;

insert_pair = mapstudent.insert(map::value_type (1, "student_one"));

我們通過pair的第二個變數來知道是否插入成功,它的第乙個變數返回的是乙個map的迭代器,如果插入成功的話insert_pair.second應該是true的,否則為false。

下面給出完成**,演示插入成功與否問題:

#include

#include

#include

using namespace std;

int main()

else

insert_pair = mapstudent.insert(pair(1, "student_two"));

if(insert_pair.second == true)

else

map::iterator  iter;

for(iter = mapstudent.begin(); iter != mapstudent.end(); iter++) }

大家可以用如下程式,看下用陣列插入在資料覆蓋上的效果

#include

#include

#include

using namespace std;

int main()

}

map容器的三種插入方式

map容器的三種插入方式 第一種 用insert函式插入pair資料。下面舉例說明 include include include using namespace std int main mapmapstudent mapstudent.insert pair 1,student one maps...

MyBatis 三種批量插入方式的對比

反覆執行單條插入語句 xml拼接sql 批處理執行 先說結論 少量插入請使用反覆插入單條資料,方便。數量較多請使用批處理方式。可以考慮以有需求的插入資料量20條左右為界吧,在我的測試和資料庫環境下耗時都是百毫秒級的,方便最重要 無論何時都不用xml拼接sql的方式。拼接sql的xmlnewid 是s...

Map的三種 遍歷方式

map中沒有迭代器 不能直接迭代 遍歷 set keyset 這個方法 是 把map中的所有鍵 key 取出 放入乙個set集合中 返回給你 v get object key 是通過傳入鍵key 返回的是 鍵key 對應value值 inte ce intera test類 去實現interb 介面...