C++关联容器(unordered_map,vector,unordered_set)

说明书:
http://classfoo.com/ccby/article/qNNOJ#sec_4Gxme0

unordered_set:(无序集合)

//500
class Solution {
public:
    vector<string> findWords(vector<string>& words) {
        vector<string> res;//来一个string类的动态数组
        unordered_set<char> row1{'q','w','e','r','t','y','u','i','o','p'};//存储键盘上第一行的字母
        unordered_set<char> row2{'a','s','d','f','g','h','j','k','l'};//存储键盘上第二行的字母
        unordered_set<char> row3{'z','x','c','v','b','n','m'};//存储键盘上第三行的字母
        for (string word : words) //for循环数组words,words的元素就是一个单词
        {
            int one = 0, two = 0, three = 0;//初始化计数器
            for (char c : word) {//for循环数组word(一个单词),word的元素即是字符
                if (c < 'a') c += 32;
                if (row1.count(c)) one = 1;//count函数返回的是符合的元素的个数,如果没有,则返回0,即false,大于0则为true
                if (row2.count(c)) two = 1;
                if (row3.count(c)) three = 1;
                if (one + two + three > 1) break;//即这个单词只用一行是无法输入完的
            }
            if (one + two + three == 1) res.push_back(word);
        }
        return res;
    }
};

**成员函数:
find 通过给定主键查找元素
count 返回匹配给定主键的元素的个数//见上例子
equal_range 返回值匹配给定搜索值的元素组成的范围**

vector(顺序容器)

//详解:http://blog.csdn.net/qq_32175379/article/details/60469987
说白了就是定义动态数组的

unordered_map(无序映射表)

//496
//建立哈希表用
class Solution {
public:
    vector<int> nextGreaterElement(vector<int>& findNums, vector<int>& nums) {
        vector<int> res(findNums.size());
        unordered_map<int, int> m;//建立哈希表,将值与索引建立联系
        for (int i = 0; i < nums.size(); ++i) {
            m[nums[i]] = i;//例如将nums数组的值与索引建立关系,这个m数组不是一般的数组,自行画图理解
        }
        for (int i = 0; i < findNums.size(); ++i) {
            res[i] = -1;
            int start = m[**findNums[i]**];//这个可以直接定位findNums中元素的值在nums中的位置
            for (int j = start + 1; j < nums.size(); ++j) {
                if (nums[j] > findNums[i]) {
                    res[i] = nums[j];
                    break;
                }
            }
        }
        return res;
    }
};

成员函数:
begin 返回指向容器起始位置的迭代器(iterator)
end 返回指向容器末尾位置的迭代器
cbegin 返回指向容器起始位置的常迭代器(const_iterator)
cend 返回指向容器末尾位置的常迭代器
Capacity:

size 返回有效元素个数
max_size 返回 unordered_map 支持的最大元素个数
empty 判断是否为空
Element access:

operator[] 访问元素
at 访问元素
Modifiers:

insert 插入元素
erase 删除元素
swap 交换内容
clear 清空内容
emplace 构造及插入一个元素
emplace_hint 按提示构造及插入一个元素
Observers:

hash_function 返回 hash 函数
key_eq 返回主键等价性判断谓词
Operations:

find 通过给定主键查找元素
count 返回匹配给定主键的元素的个数
equal_range 返回值匹配给定搜索值的元素组成的范围
Buckets:

bucket_count 返回槽(Bucket)数
max_bucket_count 返回最大槽数
bucket_size 返回槽大小
bucket 返回元素所在槽的序号

你可能感兴趣的:(C++函数)