变量(指针、数组)被创建之后应当及时把它们初始化

变量(指针、数组)被创建之后应当及时把它们初始化,以防止把 未被初始化的变量当成右值使用。

 

 1 #include <iostream>
 2 #include <string>
 3 #include <map>
 4 
 5 using namespace std;
 6 
 7 //创建map的实例,整数(int)映射字符串(string)
 8 typedef map<int, string> INT2STRING;
 9 
10 //测试map容器
11 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
12 
13 int main(int argc, char** argv) {
14     //创建map对象theMap
15     INT2STRING theMap;
16     INT2STRING::iterator theIterator,it;
17 
18     //向theMap容器中添入数据,数字和字符串配对
19     //每个元素是一个映射对
20     theMap.insert(INT2STRING::value_type(0,"Zero"));
21     theMap.insert(INT2STRING::value_type(2,"Two"));
22     theMap.insert(INT2STRING::value_type(4,"Four"));
23     theMap.insert(INT2STRING::value_type(6,"Six"));
24     theMap.insert(INT2STRING::value_type(8,"Eight"));
25 
26     //显示map容器的所有对象
27     cout<<"theMap.begin()--theMap.end():"<<endl;
28     for (theIterator=theMap.begin();theIterator!=theMap.end();++theIterator){
29         cout<<(*theIterator).first;
30         cout<<","<<(*theIterator).second<<" ";
31     }
32     cout<<endl;
33 
34     //测试map容器key的惟一性
35     theMap.insert(INT2STRING::value_type(0,"Zero"));
36     theMap.insert(INT2STRING::value_type(1,"One"));
37     theMap.insert(INT2STRING::value_type(2,"Two"));
38     theMap.insert(INT2STRING::value_type(3,"Three"));
39     theMap.insert(INT2STRING::value_type(4,"Four"));
40     theMap.insert(INT2STRING::value_type(5,"Five"));
41     theMap.insert(INT2STRING::value_type(6,"Six"));
42     theMap.insert(INT2STRING::value_type(7,"Seven"));
43     theMap.insert(INT2STRING::value_type(8,"Eight"));
44     theMap.insert(INT2STRING::value_type(9,"Nine"));
45     //下列语句将不能插入到map容器中
46     theMap.insert(INT2STRING::value_type(5,"AAA"));
47 
48     //显示map容器的所有对象
49     cout<<"theMap.begin()--theMap.end():"<<endl;
50     for (theIterator=theMap.begin();theIterator!=theMap.end();++theIterator){
51         cout<<(*theIterator).first;
52         cout<<","<<(*theIterator).second<<" ";
53     }
54     cout<<endl;
55 
56     //按键给定的区间显示序列中的元素
57     cout<<"[theMap.lower_bound(3),theMap.upper_bound(8)] :"<<endl;
58     for (it=theMap.lower_bound(3);it!=theMap.upper_bound(8);it++) {
59         cout<<(*it).first;
60         cout<<","<<(*it).second<<" ";
61     }
62     cout<<endl;
63 
64     //显示theMap的状态信息
65     cout<<"theMap.size():"<<theMap.size()<<endl;
66     cout<<"theMap.max_size():"<<theMap.max_size()<<endl;
67     cout<<"theMap.count(15):"<<theMap.count(15)<<endl;
68 
69     // 从键盘上输入数字,显示对应的字符串
70     string theString = "";
71     int index;
72     for( ; ; )
73     {
74         cout << "Enter \"q\" to quit, or enter a Number: ";
75         cin >> theString;
76         if(theString == "q")
77             break;
78 
79         for(index = 0; index < theString.length(); index++){
80             theIterator = theMap.find(theString[index] - '0');
81             if(theIterator != theMap.end() ) 
82                 cout << (*theIterator).second << " ";
83             else    
84                 cout << "[err] ";
85         }
86         cout << endl;
87     }
88     return 0;
89 }

 

posted @ 2018-08-04 11:09  borter  阅读(378)  评论(0编辑  收藏  举报