at
|
查找具有指定键值的元素。 |
begin | 返回一个迭代器,此迭代器指向映射中的第一个元素。 |
cbegin | 返回一个常量迭代器,此迭代器指向映射中的第一个元素。 |
cend | 返回一个超过末尾常量迭代器。 |
clear | 清除映射的所有元素。 |
count | 返回映射中其键与参数中指定的键匹配的元素数量。 |
crbegin | 返回一个常量迭代器,此迭代器指向反向映射中的第一个元素。 |
crend | 返回一个常量迭代器,此迭代器指向反向映射中最后一个元素之后的位置。 |
emplace | 将就地构造的元素插入到映射。 |
emplace_hint | 将就地构造的元素插入到映射,附带位置提示。 |
empty | 如果映射为空,则返回 true。 |
end | 返回超过末尾迭代器。 |
equal_range | 返回一对迭代器。 此迭代器对中的第一个迭代器指向 map 中其键大于指定键的第一个元素。 此迭代器对中的第二个迭代器指向 map 中其键等于或大于指定键的第一个元素。 |
erase | 从指定位置移除映射中的元素或元素范围。 |
find | 返回一个迭代器,此迭代器指向映射中其键与指定键相等的元素的位置。 |
get_allocator | 返回用于构造映射的 allocator 对象的副本。 |
insert | 将元素或元素范围插入到映射中的指定位置。 |
key_comp | 返回用于对映射中的键进行排序的比较对象副本。 |
lower_bound | 返回一个迭代器,此迭代器指向映射中其键值等于或大于指定键的键值的第一个元素。 |
max_size | 返回映射的最大长度。 |
rbegin | 返回一个迭代器,此迭代器指向反向映射中的第一个元素。 |
rend | 返回一个迭代器,此迭代器指向反向映射中最后一个元素之后的位置。 |
size | 返回映射中的元素数量。 |
swap | 交换两个映射的元素。 |
upper_bound | 返回一个迭代器,此迭代器指向映射中其键值大于指定键的键值的第一个元素。 |
value_comp | 检索用于对映射中的元素值进行排序的比较对象副本。 |
shrink_to_fit | 放弃额外容量。 |
size | 返回vector元素个数 |
swap | 交换两个向量的元素。 |
map T;
T[0] = 1;
T[1] = 2;
T[2] = 3;
T[3] = 4;
//operator[]返回指定下标的引用.
cout << "map容器中关键值为2的val为:";
cout << T.at(2) << endl;
//at函数查找输入键值对应的元素.
cout << "从头遍历该map元素" << endl;
map::iterator it = T.begin();
//返回map中第一个元素位置的迭代器
while (it != T.end())
//返回map中最后一个元素下一个位置的迭代器
{
cout << it->first << " ->>> " << it->second << endl;
++it;
//让迭代器跳转到下一个元素的位置.
}
cout << "find一个元素的迭代器并且访问它:";
cout << T.find(3)->first << " ->>> " << T.find(3)->second << endl;
template
pair mymake_pair(const K& key,const V& val)
{
return pair(key, val);
}
map T;
//***1*** 最正常的插入
T.insert(pair(1, 1));
T.insert(pair(2, 2));
T.insert(pair(3, 3));
//这是最基本的插入操作,这里没有前插后插的,因为搜索树会负责给你安排位置
//这里不需要你操心.
T.insert(mymake_pair(4, 4));
T.insert(mymake_pair(5, 5));
T.insert(mymake_pair(6, 6));
map::iterator it1 = T.begin();
cout << "遍历T中的元素:" << endl;
while (it1 != T.end())
{
cout << it1->second << " ";
cout << "的val为" << " ";
cout << it1->first << endl;
++it1;
}
cout << endl;
//***2** 利用迭代器进行区间插入
std::map anothermap;
anothermap.insert(T.begin(), T.find(4));
//
map::iterator it2 = anothermap.begin();
cout << "遍历anothermap中的元素:" << endl;
while (it2 != anothermap.end())
{
cout << it2->second << " ";
cout << "的val为 " << " ";
cout << it2->first << endl;
++it2;
}
map T;
T.insert(mymake_pair(1, 1));
T.insert(mymake_pair(2, 2));
T.insert(mymake_pair(3, 3));
T.insert(mymake_pair(4, 4));
T.insert(mymake_pair(5, 5));
T.insert(mymake_pair(6, 6));
map::iterator it1 = T.begin();
cout << "遍历T中的元素:" << endl;
while (it1 != T.end())
{
cout << it1->second << " ";
cout << "的val为" << " ";
cout << it1->first << endl;
++it1;
}
cout << endl;
//***2*** 删除单个迭代器
map::iterator it3 = T.find(2);
//通过find拿到关键字为2的迭代器
T.erase(it3);
//然后删除该元素.
it1 = T.begin();
cout << "遍历T中的元素:" << endl;
while (it1 != T.end())
{
cout << it1->second << " ";
cout << "的val为" << " ";
cout << it1->first << endl;
++it1;
}
cout << endl;
//***2*** 删除迭代器区间
it3 = T.find(3);
//通过find拿到关键字为3的迭代器
T.erase(it3, T.end());
//删除掉it3到map容器结束的所有节点.
it1 = T.begin();
cout << "遍历T中的元素:" << endl;
while (it1 != T.end())
{
cout << it1->second << " ";
cout << "的val为" << " ";
cout << it1->first << endl;
++it1;
}
cout << endl;
//***3*** 终极大招 删除所有元素.
T.insert(mymake_pair(1, 1));
T.insert(mymake_pair(2, 2));
T.insert(mymake_pair(3, 3));
T.insert(mymake_pair(4, 4));
T.insert(mymake_pair(5, 5));
T.insert(mymake_pair(6, 6));
T.clear();
//删除所有元素.
it1 = T.begin();
cout << "遍历T中的元素:" << endl;
while (it1 != T.end())
{
cout << it1->second << " ";
cout << "的val为" << " ";
cout << it1->first << endl;
++it1;
}
cout << endl;