首页 > 编程知识 正文

java方法重载简单例子,共用体使用简单例子

时间:2023-05-05 07:18:12 阅读:246775 作者:106

map中的find方法主要用于查找,给定key,可以返回该元素的对应迭代器,然后利用这个迭代器访问value内容.

//map::find#include <iostream>#include <map>int main (){ std::map<char,int> mymap; std::map<char,int>::iterator it; mymap['a']=50; mymap['b']=100; mymap['c']=150; mymap['d']=200; it = mymap.find('b'); if (it != mymap.end()) mymap.erase (it); // print content: std::cout << "elements in mymap:" << 'n'; std::cout << "a => " << mymap.find('a')->second << 'n'; std::cout << "c => " << mymap.find('c')->second << 'n'; std::cout << "d => " << mymap.find('d')->second << 'n'; std::cout << "b => " << mymap.find('b')->second << 'n'; std::cout << "e => " << mymap.find('e')->second << 'n'; return 0;}

编译运行结果:

 

 

C++中auto关键字的使用及编译错误解决

如果修改代码,将std::map<char,int>::iterator it;注释掉,然后使用auto关键字:auto it = mymap.find('b');

//map::find#include <iostream>#include <map>int main (){ std::map<char,int> mymap; //std::map<char,int>::iterator it; mymap['a']=50; mymap['b']=100; mymap['c']=150; mymap['d']=200; auto it = mymap.find('b'); if (it != mymap.end()) mymap.erase (it); // print content: std::cout << "elements in mymap:" << 'n'; std::cout << "a => " << mymap.find('a')->second << 'n'; std::cout << "c => " << mymap.find('c')->second << 'n'; std::cout << "d => " << mymap.find('d')->second << 'n'; std::cout << "b => " << mymap.find('b')->second << 'n'; std::cout << "e => " << mymap.find('e')->second << 'n'; return 0;}

 

如果直接使用g++命令编译会报错,大致如下:

原因:
默认把auto当作声明自动声明周期的关键字(C++98标准),而不是自动类型的关键字;
在C++11标准中auto可以在声明变量的时候根据变量初始值的类型自动为此变量选择匹配的类型

解决:
因此如果要解决此问题需要在编译时添加-std=c++11的编译选项;
        g++ -std=c++11 iterator.cpp

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。