C++语法基础--关联容器--map(二)--查找并读取map中的元素count(),find()与 从map对象中删除元素erase()
2013-07-10 11:26
369 查看
1.查找并读取map中的元素count(),find()
*对于map对象,count成员的返回值只能是0或1
原型:
iterator find (const key_type& k);
const_iterator find (const key_type& k) const
size_type count (const key_type& k) const;
eg:
int main ()
{
map<string,int> mymap;
map<string,int>::iterator it;
mymap["jack"]=18;
cout<<mymap["rose"]<<endl; //直接使用下标的弊端:mymap并不存在"rose"的键,
//但是却把"rose"插入了mymap
if(mymap.count("tom")) //mymap并不存在"tom"的键,返回0
{
cout<<mymap["tom"]<<endl;;
}
it=mymap.find("jack"); //返回"jack"在mymap中的迭代器
cout<<it->first<<": "<<it->second<<endl; //验证返回的迭代器
mymap.find("lily"); //mymap并不存在"lily"的键,返回end()迭代器,但并不会插入"lily"的键值
for(it=mymap.begin();it!=mymap.end();it++)
{
cout<<it->first<<": "<<it->second<<endl;
}
return 0;
}
运行结果:
2. 从map对象中删除元素
原型:
void erase (iterator position);
size_type erase (const key_type& k);
void erase (iterator first, iterator last);
eg:
int main ()
{
map<string,int> mymap;
map<string,int>::iterator it;
mymap["jack"]=18;
mymap["tom"]=19;
mymap["jany"]=17;
mymap["rose"]=20;
mymap["lily"]=16;
cout<<"before erase: "<<endl;
for (it=mymap.begin(); it!=mymap.end(); ++it)
{
cout << it->first << " => " << it->second << '\n';
}
it=mymap.find("tom");
mymap.erase (it); // erasing by iterator
mymap.erase ("rose"); // erasing by key
it=mymap.find ("jany");
mymap.erase ( it, mymap.end() ); // erasing by range
cout<<"after erase: "<<endl;
for (it=mymap.begin(); it!=mymap.end(); ++it)
{
cout << it->first << " => " << it->second << '\n';
}
return 0;
}
运行结果:
*对于map对象,count成员的返回值只能是0或1
原型:
iterator find (const key_type& k);
const_iterator find (const key_type& k) const
size_type count (const key_type& k) const;
eg:
int main ()
{
map<string,int> mymap;
map<string,int>::iterator it;
mymap["jack"]=18;
cout<<mymap["rose"]<<endl; //直接使用下标的弊端:mymap并不存在"rose"的键,
//但是却把"rose"插入了mymap
if(mymap.count("tom")) //mymap并不存在"tom"的键,返回0
{
cout<<mymap["tom"]<<endl;;
}
it=mymap.find("jack"); //返回"jack"在mymap中的迭代器
cout<<it->first<<": "<<it->second<<endl; //验证返回的迭代器
mymap.find("lily"); //mymap并不存在"lily"的键,返回end()迭代器,但并不会插入"lily"的键值
for(it=mymap.begin();it!=mymap.end();it++)
{
cout<<it->first<<": "<<it->second<<endl;
}
return 0;
}
运行结果:
2. 从map对象中删除元素
原型:
void erase (iterator position);
size_type erase (const key_type& k);
void erase (iterator first, iterator last);
eg:
int main ()
{
map<string,int> mymap;
map<string,int>::iterator it;
mymap["jack"]=18;
mymap["tom"]=19;
mymap["jany"]=17;
mymap["rose"]=20;
mymap["lily"]=16;
cout<<"before erase: "<<endl;
for (it=mymap.begin(); it!=mymap.end(); ++it)
{
cout << it->first << " => " << it->second << '\n';
}
it=mymap.find("tom");
mymap.erase (it); // erasing by iterator
mymap.erase ("rose"); // erasing by key
it=mymap.find ("jany");
mymap.erase ( it, mymap.end() ); // erasing by range
cout<<"after erase: "<<endl;
for (it=mymap.begin(); it!=mymap.end(); ++it)
{
cout << it->first << " => " << it->second << '\n';
}
return 0;
}
运行结果:
相关文章推荐
- map常用成员(关联容器)----创建map<主键,主键对应的值>,增insert,删erase,改查找find,然后修改second,遍历iterator,获取元素个数size,判空empty
- C++语法基础--顺序容器(三)--关系操作符,容器大小的操作,访问元素,删除元素,查找元素
- C++ map关联容器删除元素
- C++ 关联容器之map插入相同键元素与查找元素操作
- C++ 关联容器之map插入相同键元素与查找元素操作
- C++ 关联容器之map插入相同键元素与查找元素操作
- c++ List 容器对象从后向前查找某元素并删除
- C++语法基础--关联容器--map(一)--constructor,operator[],insert
- C++如何删除map容器中指定值的元素详解
- C++中防止STL中迭代器失效__map/set等关联容器vector/list/deque等序列容器_如何防止迭代器失效_即erase()的使用
- C++语法基础--关联容器--set
- C++中防止STL中迭代器失效__map/set等关联容器vector/list/deque等序列容器_如何防止迭代器失效_即erase()的使用
- C++ 10.3.6 查找并读取map中的元素
- 删除vector容器中的对象元素的三种方法:pop_back, erase与remove算法http://www.xuebuyuan.com/1407838.html
- C++语法基础--泛型算法(generic algorithm)--写入容器元素的算法fill(),fill_n,replace()
- c++ find 在容器中查找元素
- C++语法基础--泛型算法(generic algorithm)--只读算法accumulate(),find_first_of(),count(),count_if()
- C++中防止STL中迭代器失效——map/set等关联容器——vector/list/deque等序列容器—如何防止迭代器失效—即erase()的使用
- C++ 10.3.7 从map对象中删除元素
- C++语法基础--关联容器--multimap,multiset