java編程工作中,經常對數據儲存是Arraylist和HashMap,他們保持長度可變,而且可以很好對保持其中數據遍歷和排序。所以我就c++中的對等的方法。
c++中的字典map和unordered_map:
#include
運行結果:
key a values 1
key c values 3
key d values 2
key f values 4
key s values 0
********************************
key f values 4
key c values 3
key d values 2
key s values 0
key a values 1
總結:
map和unordered_map 都是key,value的形勢保持數據,而且key都是唯一性,但是c++中的map和java中的treeMap一樣,自動對key進行排序,而unordered_map 更新java中的hashMap一樣,沒有對key進行有序儲存。
c++中 list,set ,vector
//vector
std::vector<:string> *data=new std::vector<:string>();
data->push_back("1");
data->push_back("2");
data->push_back("4");
data->push_back("3");
for (auto& d:*data) {
std::cout < }
//list
std::list<:string> *list=new std::list<:string>();
list->push_back("1");
list->push_back("2");
list->push_back("4");
list->push_back("3");
for(std::list<:string>::iterator i=list->begin();i!=list->end();i++){
std::cout << "list " <front()<<:endl> }
/* for (auto& d:*list) {
std::cout << "list" <}*/
//set
std::set<:string> *set=new std::set<:string>();
set->insert("1");
set->insert("2");
set->insert("4");
set->insert("3");
for (auto& d:*set) {
std::cout < }
運行結果:
vector 1
vector 2
vector 3
list 1
list 2
list 3
list 4
set 1
set 2
set 3
set 4
總結:
vector和數組類似,擁有一段連續的內存空間,並且起始地址不變。set的特性是,所有元素都會根據元素的鍵值自動排序,不會像vector和list保持插入的順序。如果非要卻別vector和list的話:如果需要高效的隨機存取,而不在乎插入和刪除的效率,使用vector;如果需要大量的插入和刪除,而不關心隨機存取,則應使用list。
閱讀更多 壞桃子 的文章