vector是一个简单的线性连续空间。 它以两个迭代器 start 和 finish 分别表示vector的起始元素的地址和终止元素的地址。 并且还具有一个 end_of_storage 表示vector开辟的空间的终止位置。 所以: start - finish 表示的就是我们在连续空间中已经使用的范围。 start - end_of_storage 表示我们的总的空间大小。 fin...
#include"iostream"using namespace std;#include"vector"intmain(){// 创建空的 vector 容器std::vector<int>vec{1,2,3};// 获取末尾迭代器vector<int>::iterator it=vec.end();// 该迭代器指向 容器中 最后一个元素 之后一个位置// 下面的代码会造成异常 , 不能获取对应的元素值cout<<*it<<endl;...
vector <int> :: iterator iter; // 变量名为iter vector 容器的迭代器属于随机访问迭代器:迭代器一次可以移动多个位置。 成员函数: begin() :返回指向容器中第一个元素的正向迭代器;如果是const类型容器,则该函数返回的是常量正向迭代器 end():返回指向容器最后一个元素之后一个位置的正向迭代器;如果是const类...
对vector<type> v 的迭代器 it 的操作有: v.bedin():返回迭代器指向的第一个元素的位置 v.end():返回迭代器指向的最后一个元素后的位置 v.insert(it, elem):向迭代器 it 指向的元素前插入新元素 elem v.insert(it, n, elem):向迭代器 it 指向的元素前插入 n 个 elem v.insert(it, first, last...
📒1. 迭代器失效 迭代器失效是指在使用迭代器遍历或操作vector容器时,由于某些操作导致迭代器失效,无法再正确引用容器中的元素。这种情况往往发生在vector容器进行扩容、插入或删除元素等操作时。迭代器失效可能导致程序出现未定义行为,甚至崩溃。 因此:深入理解vector迭代器失效的原因和场景,对于编写健壮、可靠的C++代码...
一、 迭代器 iterator 基本原理 1、迭代器 iterator 作用 2、迭代器 iterator 分类 3、双向迭代器 4、随机访问迭代器 二、 迭代器 iterator 正向遍历与逆向遍历 1、迭代器正向遍历与逆向遍历 2、使用迭代器正向遍历 vector 容器 3、使用迭代器反向遍历 vector 容器 ...
1. 迭代器的声明和初始化: 在使用迭代器之前,我们需要声明和初始化它。在C++中,vector迭代器的声明方式如下: std::vector<int>::iterator it; 这里的`std::vector<int>::iterator`表示了vector<int>的迭代器类型。我们也可以使用auto关键字来简化声明: auto it = vec.begin(); 这样编译器会根据初始化的值...
在vector中,我们经常会使用迭代器iterator对vector中的元素进行索引,也经常需要将迭代器作为参数传递到vector的成员函数中,迭代器使用非常方便,但使用不当也会给我们带来巨大的麻烦,下面就深入分析vector迭代器失效的场景
在C++ 中,vector 是一种动态数组,它提供了许多方便的成员函数和操作符,包括迭代器(iterator)的使用。使用 vector 的迭代器可以方便地遍历 vector 中的所有元素。 下面是使用 vector 迭代器的示例代码: #include <iostream> #include <vector> int main() { std::vector<int> vec = {1, 2, 3, 4, 5};...
cout<<sizeof(vector<int>::size_type)<<endl; (4)迭代器的使用 for (vector<string>::iterator iter = text.begin();iter != text.end(); ++iter) 可以使用迭代器 *iter获取和设置vector数据,也可以使用下标text[i]来获取和设置vector数据。