面试之快速学习STL-set

set

  1. 和 map、multimap 容器不同,使用 set 容器存储的各个键值对,要求键 key 和值 value 必须相等
  2. 使用 set 容器存储的各个元素的值必须各不相同
  3. 从语法上讲 set 容器并没有强制对存储元素的类型做 const 修饰, 即 set 容器中存储的元素的值是可以修改的。但是,C++ 标准为了防止用户修改容器中元素的值,对所有可能会实现此操作的行为做了限制,使得在正常情况下,用户是无法做到修改 set 容器中元素的值的
  4. 对于初学者来说,切勿尝试直接修改 set 容器中已存储元素的值,这很有可能破坏 set 容器中元素的有序性,最正确的修改 set 容器中元素值的做法是:先删除该元素,然后再添加一个修改后的元素

模版

set 容器的类模板定义如下:

template < class T,                        // 键 key 和值 value 的类型
           class Compare = less<T>,        // 指定 set 容器内部的排序规则
           class Alloc = allocator<T>      // 指定分配器对象的类型
           > class set;

初始化

std::set<std::string> myset{"http://c.biancheng.net/java/",
                            "http://c.biancheng.net/stl/",
                            "http://c.biancheng.net/python/"};

std::set<std::string> copyset(myset);

迭代器

  1. 成员方法返回的迭代器,无论是 const 类型还是非 const 类型,都不能用于修改 set 容器中的值

其他真的没啥好讲的和map multimap一样

你可能感兴趣的:(面试之快速学习STL,学习,c++,开发语言)