cpp入门容器注意事项

145 阅读2分钟

在C++中,setvector是两种非常常用的标准模板库(STL)容器,它们各自有不同的特性和使用场景。

set的常用方法和注意事项

  • #include <set>:使用set前需要包含相应的头文件。
  • set<T> s;:声明一个空的set,其中T是存储元素的类型。
  • set<T> s(c.begin(), c.end());:通过迭代器范围构造set,其中c是一个包含初始元素的容器。
  • s.insert(t);:向set中插入一个元素t
  • s.erase(t);:从set中删除一个元素t
  • s.find(t);:查找set中是否存在元素t,如果存在返回该元素的迭代器,否则返回s.end()
  • s.size();:返回set中元素的个数。
  • s.empty();:检查set是否为空。
  • s.begin();:返回指向set中第一个元素的迭代器。
  • s.end();:返回指向set末尾的迭代器。
  • 注意事项set中的元素会自动排序且唯一,不允许有重复元素。

vector的常用方法和注意事项

  • #include <vector>:使用vector前需要包含相应的头文件。
  • vector<T> v;:声明一个空的vector,其中T是存储元素的类型。
  • vector<T> v(n, val);:声明一个大小为n,所有元素初始化为valvector
  • v.push_back(t);:在vector的末尾添加一个元素t
  • v.pop_back();:删除vector的最后一个元素。
  • v.size();:返回vector中元素的个数。
  • v.capacity();:返回vector的容量,即在不需要重新分配内存的情况下可以容纳的元素数量。
  • v.resize(n);:调整vector的大小到n,可以增加或减少元素。
  • v.reserve(n);:预留n个元素的空间,但不实际添加元素。
  • 注意事项vector支持随机访问,可以通过下标直接访问元素,但需要注意不要越界。

在使用这两种容器时,需要根据具体需求选择合适的容器类型。例如,如果需要快速查找元素,可以使用set,因为其内部通常是基于平衡二叉搜索树实现的,查找效率较高。而如果需要动态添加或删除元素,并且需要随机访问这些元素,那么vector可能是更好的选择。此外,由于set自动去重并排序,它不适用于需要存储重复元素或不关心元素顺序的情况。而vector则没有这些限制。在实际编程中,还需要考虑内存使用和性能等因素,选择合适的容器以满足程序的需求。