unordered_set+unordered_map+字符输入

提高oj运行时间效率:
ios::sync_with_stdio(false);
关于字符输入:
 char arr[100];
 gets(arr);  //字符串输入
 cout<<arr<<endl;
 cout<<strlen(arr)<<endl;// 字符型

 

unordered_set:

set会自动去除重复元素

    unordered_set<int> ms;
    ms.insert(1);
    ms.insert(2);
    ms.insert(3);
// find() 函数如果没有找到会返回结束位置的迭代器(地址)
unordered_set<int>::iterator pos = us.find(1); //查找值为1的元素 
    if (pos != us.end())
    {
        us.erase(pos);
    }
//遍历1
      for(auto x:ms){
        cout<<x<<" ";
    }
//遍历2
   for(auto iter=ms.begin();iter!=ms.end();iter++){
        cout<<*iter<<" ";
    }

 

unordered_map:
 unordered_map<int, string> um;
    //插入键值对方式一
    um.insert(pair<int, string>(1, "one"));
    um.insert(pair<int, string>(2, "two"));
    um.insert(pair<int, string>(3, "three"));
    //插入方式2 {}创建一个 一维向量
    um.insert({4,"four"});
    // 插入键值对方式3
    um.insert(make_pair(6,"b"));
    //遍历方式一:范围for
    for (auto e : um)
    {
        cout << e.first << "->" << e.second << " ";
        cout<<endl;
    }
    //遍历方式2
    for(auto iter=um.begin();iter!=um.end();iter++){
        cout<<iter->first<<"->"<<iter->second<<endl;
    }
​
​