牛客_设计带有setAll功能的哈希表


思路:

使用“版本号”记录每个key对应的最新的value值。

实现:

 1 #include
 2 using namespace std;
 3 int main(){
 4     //freopen("in.txt", "r", stdin);
 5     int t;cin>>t;
 6     int cnt=0;int val=-1;
 7     unordered_map<int,pair<int,int>>mp;
 8     while(t--){
 9         int op;cin>>op;
10         if(op==1){
11             int x,y;cin>>x>>y;
12             mp[x]={cnt+1,y};
13         }
14         else if(op==2){
15             int x;cin>>x;
16             if(!mp.count(x)){
17                 cout<<-1<<endl;
18             }
19             else{
20                 auto tmp=mp[x];
21                 int version=tmp.first;
22                 if(version>cnt){
23                     cout<endl;
24                 }
25                 else{
26                     cout<endl;
27                 }
28             }
29         }
30         else{
31             int x;cin>>x;
32             val=x;
33             cnt++;
34         }
35     }
36     return 0;
37 }