精华内容
下载资源
问答
  • vector end()的返回值

    千次阅读 多人点赞 2019-06-29 19:08:14
    i 的地址和end 的地址差了4,刚好是 int 4个字节的大小,说明end 在 i 后面一个单位 (也扩充一下,vector 的物理内存其实是连续的) 上图是i 做了自加运算往后推了一位之后的结果,地址和end 一样了! 所以,遍历...

    end()的返回值

    begin()返回的是第一个元素的迭代器,但是end()返回的却是末尾元素再下一个元素的迭代器,下面进入调试界面详细了解一下:
    在这里插入图片描述

    i 的地址和end 的地址差了4,刚好是 int 4个字节的大小,说明end 在 i 后面一个单位 (也扩充一下,vector 的物理内存其实是连续的)
    在这里插入图片描述

    上图是i 做了自加运算往后推了一位之后的结果,地址和end 一样了!

    所以,遍历容器的时候,限制条件应为

        i<A.end();//小于
    

    这里附上上面的代码,大家可以自行调试:

    int main()
    {
        vector <int> A;
        A.push_back(1);
        vector<int>::iterator i=A.begin();
        vector<int>::iterator j=A.end();
        for(;i<A.end();)
        {
            i++;
            if(i==j)break;
        }
        return 0;
    }
    
    展开全文
  • vector::end( )与vector::back( )

    千次阅读 2016-12-01 12:13:32
    vector::end( )与vector::back( ) 错误:vector iterator not dereferencable

    vector::end( )返回的是vector最后一个元素后的”结束元素“

    vector::back( )返回的是vector最后一个元素

    类比字符串,end( )返回的是’\0’,back( )返回的是字符串的最后一个字符

    如果试图对vector::end( )返回的元素(结束元素)进行操作,将导致如下错误:

    vector iterator not dereferencable

    下面详细介绍两个函数并举例说明——


    vector::end

    Returns an iterator referring to the past-the-end element in the vector container.

    The past-the-end element is the theoretical element that would follow the last element in the vector. It does not point to any element, and thus shall not be dereferenced.

    Because the ranges used by functions of the standard library do not include the element pointed by their closing iterator, this function is often used in combination with vector::begin to specify a range including all the elements in the container.

    If the container is empty, this function returns the same as vector::begin.

    Example

    // vector::begin/end
    #include <iostream>
    #include <vector>
    using namespace std;
    
    int main ()
    {
      vector<int> myvector;
      for (int i=1; i<=5; i++) myvector.push_back(i);
    
      cout << "myvector contains:";
      for (vector<int>::iterator it = myvector.begin() ; it != myvector.end(); ++it){
        cout << ' ' << *it;
      }
      cout << '\n';
    
      return 0;
    }

    Output

    myvector contains: 1 2 3 4 5

    vector::back

    Returns a reference to the last element in the vector.

    Unlike member vector::end, which returns an iterator just past this element, this function returns a direct reference.

    Calling this function on an empty container causes undefined behavior.

    Example

    // vector::back
    #include <iostream>
    #include <vector>
    using namespace std;
    
    int main ()
    {
      vector<int> myvector;
    
      myvector.push_back(10);
    
      while (myvector.back() != 0)
      {
        myvector.push_back ( myvector.back() -1 );
      }
    
      cout << "myvector contains:";
      for (unsigned i=0; i<myvector.size() ; i++){
        cout << ' ' << myvector[i];
      }
      cout << '\n';
    
      return 0;
    }

    Output

    myvector contains: 10 9 8 7 6 5 4 3 2 1 0
    展开全文
  • STL vector中的end方法(8)

    千次阅读 2014-08-11 09:37:46
    public member function ...std::vector::end C++98 C++11 iterator end() noexcept; const_iterator end() const noexcept; Return iterator to end Returns an iterator refe
    public member function
    <vector>

    std::vector::end

          iterator end() noexcept;
    const_iterator end() const noexcept;
    
    Return iterator to end
    Returns an iterator referring to the past-the-end element in the vector container.

    返回一个超尾迭代器指向vector容器最后元素的再下一个元素(这个位置是没有元素存在的)。


    The past-the-end element is the theoretical element that would follow the last element in the vector. It does not point to any element, and thus shall not be dereferenced.

    这个超尾元素是一个假设紧跟容器最后一个元素的下一个位置的元素,但是该超尾迭代器本身是不指向任何元素的,因此不应该被解除引用。


    Because the ranges used by functions of the standard library do not include the element pointed by their closing iterator, this function is often used in combination with vector::begin to specify a range including all the elements in the container.

    因为标准库里面用于指示范围的函数并没有包含被超尾迭代器所指向的元素,这个函数通常联合begin一起来使用用于指出容器范围内的所有元素。区间范围为[begin,end)


    If the container is empty, this function returns the same as vector::begin.
    如果容器是空的,那么这个函数的返回值和begin是一样的。

    Parameters

    none

    Return Value

    An iterator to the element past the end of the sequence.
    返回值是一个超尾迭代器,指向超出序列范围外的一个位置。

    If the vector object is const-qualified, the function returns a const_iterator. Otherwise, it returns an iterator.

    如果vector对象本身具有const属性,那么将返回一个const_iterator,否则,返回一个普通的iterator.


    Member types iterator and const_iterator are random access iterator types (pointing to an element and to a const element, respectively).

    该迭代器的类型属于随机访问迭代器类型。


    Example

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    // vector::begin/end
    #include <iostream>
    #include <vector>
    
    int main ()
    {
      std::vector<int> myvector;
      for (int i=1; i<=5; i++) myvector.push_back(i);
    
      std::cout << "myvector contains:";
      for (std::vector<int>::iterator it = myvector.begin() ; it != myvector.end(); ++it)
        std::cout << ' ' << *it;
      std::cout << '\n';
    
      return 0;
    }


    Output:
    myvector contains: 1 2 3 4 5
    

    Complexity

    Constant.

    Iterator validity

    No changes.

    Data races

    The container is accessed (neither the const nor the non-const versions modify the container).

    容器将被访问。

    No contained elements are accessed by the call, but the iterator returned can be used to access or modify elements. Concurrently accessing or modifying different elements is safe.

    当这个函数调用时,容器内的元素不会被实际访问,但是该迭代器可以用来访问或者是修改元素,并且他们的操作都是安全的。


    Exception safety

    No-throw guarantee: this member function never throws exceptions.

    The copy construction or assignment of the returned iterator is also guaranteed to never throw.

    该方法不会抛出异常

    利用复制构造器或者是赋值运算符得到的该iterator也不会抛出异常

    //翻译的不好的地方请多多指导,可以在下面留言或者点击左上方邮件地址给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。

    转载请注明出处:http://blog.csdn.net/qq844352155

    2014-8-11

    于GDUT




    展开全文
  • vector::end() 是 "vector" 头文件的库函数,可用于获取向量的最后一个元素。它返回一个指向向量的 past-the-end 元素的迭代器。 注意: 要使用矢量,请包括<vector>标题。 它不指向最后一个元素,因此要...

    vector::end() 是 "vector" 头文件的库函数,可用于获取向量的最后一个元素。它返回一个指向向量的 past-the-end 元素的迭代器。

    注意:

    • 要使用矢量,请包括<vector>标题。
    • 它不指向最后一个元素,因此要获取我们可以使用的最后一个元素vector::end()-1

    vector::end() 函数的语法

        vector::end();
    

    参数: none——它什么都不接受。

    返回值: iterator– 它返回一个指向向量的 past-the-end 元素的迭代器。

    实际上Vector中的begin和end函数是左闭右开的区间。

    例:

        Input:
        vector<int> vector1{ 1, 2, 3, 4, 5 };
    
        Function call:
        vector<int>::iterator it;
        it = vector1.begin;
        cout << *it << endl;
        it = vector1.end()-1;
        cout << *it << endl;
            
        Output:
        1
        5

    为了获取最后一个元素,可以使用rbegin或者back函数。 

    展开全文
  • 返回一个当前vector容器中起始元素的迭代器。 二、end函数 函数原型: iterator end(); const_iterator end(); 功能: 返回一个当前vector容器中末尾元素的迭代器。 三、front函数 函数原...
  • Unity 之 Lua使用Vector3遇到的问题

    千次阅读 2020-07-31 23:26:12
    Unity 之 Lua使用Vector3遇到的问题,Vector3原方法查看
  • 之前看见std::vector 容器的begin()、end()、front()、back()用法,了解begin()和end(),不了解front()和back()方法,今天没事查了下博客,验证了下,留个随手笔记。 一、begin函数 函数原型: iterator begin(); ...
  • vector中,使用erase来剔除对应的元素,但是使用iterator的时候需要注意不要让iterator变成野指针 vector的erase 在C++ Reference 中,对erase的说明如下: vector::erase - C++ Reference ...
  • 遍历一个vector容器有很多种方法,使用起来也是仁者见仁。通过索引遍历:for (i = 0; i(); i++) { cout [i] ; }迭代器遍历:for (vInt::const_iterator iter = v.begin(); iter != v.end();iter++) { cout *iter ;...
  • Python 定义一个完整的 vector

    千次阅读 2019-04-19 12:27:44
    # BEGIN VECTOR_V1 from array import array import reprlib import math class Vector: typecode = 'd' def __init__(self, components): self._components = array(self.typecode, co...
  • 使用vector容器,即避免不了进行查找,所以今天就罗列一些stl的find算法应用于vector中。find() Returns an iterator to the first element in the range [first,last) that compares equal to val. If no such ...
  • 向量容器(vector)是一种顺序容器,是一块连续分配的内存,支持随机访问,从数据安排的角度看,和数组极其相似,数组跟vector的区别在于:数组是静态分配空间,一旦分配了空间的大小,就不可以再改变了,例如,int a[6...
  • C++ 中vector的使用方法vector是C++标准模板库(STL)中的部分内容,是一个十分有用的容器,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。作用:它能够像容器一样存放各种类型的对象,简单地说,...
  • C++_vector操作

    万次阅读 多人点赞 2019-05-28 11:24:15
    vector说明: vector是向量类型,可以容纳许多类型的数据,因此也被称为容器 (可以理解为动态数组,是封装好了的类) vector头文件-vector vector初始化: 方式1. vector<int>a(10);//定义具有10个...
  • vector迭代器的begin()和end()

    千次阅读 2014-02-23 12:01:29
    end()永远指向最后一个元素的下一个位置; 若容器为空时,迭代器的begin()和end()指向位置相同,而后即使再给容器赋值,迭代器的begin()指向,仍然为空。 错误范例: #include #include void pri
  • C++STL中vector容器 begin()与end()、front()与back()、find()函数的用法
  • 返回一个当前vector容器中起始元素的迭代器。   end函数: 函数原型: iterator end(); const_iterator end(); 功能: 返回一个当前vector容器中末尾元素的迭代器。   front函数: 函数原型...
  • c++ vector begin(),end(),rbegin(),rend()问题

    万次阅读 多人点赞 2016-06-02 15:38:33
    9.3.2 begin和end成员  begin和end操作产生指向容器内第一个元素和最后一个元素的下一个位置的迭代器。这两个迭代器通常用于标记包含容器中所有元素的迭代范围。 c.begin() 返回一个迭代器,它指向容器c的第...
  • 一、begin() 功能: ...二、end() 功能: 返回向量尾指针,指向向量最后一个元素的下一个位置 vector<int>a={1,0}; vector<int>::iterator iter=a.begin(); cout<<*iter; ..
  • 具体时指由容器定义的具体的iterator类型,如vector 若一种类型支持一组确定的操作(这些操作可用来遍历容器内的元素,并访问这些元素的值),我们就称这种类型为迭代器。 各容器类都定义了自己的iterator类型,...
  • 向量容器(vector)是一种顺序容器,是一块连续分配的内存,支持随机访问,从数据安排的角度看,和数组极其相似,数组跟vector的区别在于:数组是静态分配空间,一旦分配了空间的大小,就不可以再改变了,例如,int a[6...
  • vector 中元素的删除

    千次阅读 2019-09-24 23:45:58
    vector 中删除元素的方法是:b.erase(it); //b是vector, it 是 vector::iterator 但是删除vector 中的元素有些诡异(^_^),稍不注意,就会出错。 下面先给出基本vector ,如下代码,然后我们来删除为3的元素。 #...
  • 【C++】vector数组排序

    千次阅读 2021-05-23 15:06:02
    目录一.简单升序排序(1)准备(2)函数格式(3)完整代码(4)结果二.简单降序排序(1)函数格式(2)完整代码(3)结果三....vector头文件,用来引入vector数组 algorithm头文件,用来引入sort
  • C++ vector用法详解

    千次阅读 2021-01-31 22:32:56
    1.vector介绍 头文件:#include < vector > 向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。 跟任意其它类型容器一样,它能够存放各种类型的对象。 可以简单的认为,向量是一个...
  • C++ vector的使用总结及常用vector操作

    千次阅读 多人点赞 2019-09-07 00:48:48
    C++ vector类为内置数组提供了一种替代表示,与string类一样 vector 类是随标准 C++引入的标准库的一部分,使用时需包含头文件: #include <vector> 二、使用方式 C++ vector类有两种使用方式: 第一种:...
  • C++中的vector用法详解

    千次阅读 2018-03-10 20:44:14
    一、vector介绍 1、vector(向量) 2、变量声明 二、详细的函数实现功能 1、建立一个容纳1-1000值的vector 2、使用下标访问元素 3、使用迭代器访问元素 4、插入和删除元素 三、使用vector 1、判断vector中某...
  • 在C++中常用的string的API都学习完了,这篇开始学习vector容器。vector有点类似数组,但是一个最懂扩容和支持尾部插入和删除的类似数组的容器。vector数据结构和数组非常相似,也称为单端数组,不同之处在于数组是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 455,042
精华内容 182,016
关键字:

endvector