【c++ 重载】

重载"[]":

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 struct Node{
 5     #define N 1000
 6     int data[N], cnt;
 7     string s[N];
 8     Node(int c = 0):cnt(c){}
 9     int &operator[](string str) {
10         for(int i = 1; i <= cnt; i++) {
11             if(s[i] == str) {
12                 return data[i];
13             }
14         }
15         data[++cnt] = 0;
16         s[cnt] = str;
17         return data[cnt];
18     }
19 };
20 int main()
21 {
22     Node a;
23     a["abc"] = 1;
24     a["ab"] = 2;
25     cout<< a["a"] <<endl<< a["ab"]<< endl<< a["abc"]<< endl;
26 }
27 //结果:
28 //0
29 //2
30 //1
View Code

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。