引言

       为了方便学习,我将单独介绍每一个容器,利于文章可读性。

​​​              一、vector 容器
              二、set 容器
              三、stack 容器

              四、queue 容器

              五、map 容器
              六、pair 容器

              七、string容器(第一篇已介绍)

正文

vector(动态数组)

1、声明

  vector<int> v;

2、初始化

 v={1,3,5,6,7};                 //静态初始化

for (int i = 0; i < n; i++)    //动态初始化

  {

    int t;

    cin >> t;

    v.push_back(t);

  }

3、常见函数

      v.size();                                              //返回 vector 中元素的数量

      v.empty();                                          //检查 vector 是否为空,返回 true 或 false

      v.clear();                                            //清空所有元素

      v.push_back(10);                               // 在 vector 的末尾添加一个元素 10
      v.insert(v.begin() + 2, 30);                 // 在下标为 2 的位置插入元素 30
      v.erase(v.begin() + 2);                       // 删除下标为 2 的位置的元素
     v.erase(v.begin() + 1, v.begin() + 3); // 删除下标为 1 到下标为 3 间的元素(不包括 3 元素)

4、遍历 (两种方式)
  动态数组for循环遍历

  for(int i=0; i < v.size();i++){

    cout<<v[i]<<endl;

  }

动态数组迭代器遍历

    认识新概念

            迭代器iteratior

                   *定义:迭代器可以被视为一个指向容器中元素的指针,但它提供了一种更抽象和安全的方式来访问和操作容器中的元素。迭代器并不是直接的地址,而是一个对象,提供了访问容器元素的功能和操作。

                  *声明迭代器:声明一个迭代器变量,类型与要遍历的容器的迭代器类型相同。
                  *初始化迭代器:容器的 begin() 方法初始化迭代器

                  * v.begin()  指向容器的第一个元素。

                  *v.end() 是指向最后一个元素之后的位置,这个位置是一个无效的位置,主要用于标记                     容器的结束。

     示例

for (vector<int>::iterator iter = v.begin(); iter != v.end(); iter++)

  {

    cout << *iter << ends;

    if (*iter == 3)

      del = iter;

  }

5、删除

 vector<int>::iterator del = v.end();

迭代器遍历

  for (vector<int>::iterator iter = v.begin(); iter != v.end(); iter++)

  {

    cout << *iter << ends;

    if (*iter == 3)

      del = iter;

  }

  if (del != v.end())

  {

    v.erase(del);

    cout << "删除后的数据" << endl;

    for (vector<int>::iterator iter = v.begin(); iter != v.end(); iter++)

    {

      cout << *iter << ends;

    }

    cout << endl;

  }

  else

  {

    cout << "没有找到3" << endl;

  }

6、清空容器

v.clear();

  if (v.empty())

  {

    cout << "clear success" << endl;

  }

更多推荐