zoukankan      html  css  js  c++  java
  • C++STL

    对vector进行一些总结。


    一些需要注意的知识点:

    1.标准库vector表示对象的集合, 其中所有对象的类型都相同。因为vector中容纳着其他对象,所以也称作容器。

    2.C++语言既有类模板(class template),也有函数模板,其中vector就是一个类模板。

    3.模板本身不是类或函数,相反可以将模板看做为编译器生成类或函数 编写的一份说明。编译器根据模板创建类或函数的过程称为实例化

    4.vector是模板而非类型,由vector生成的类型必须包含vector中元素的类型,例如vector<int>是类型,其中的元素都是int类型的对象。

    5.vector能容纳大多数的对象作为其元素,但是因为引用不是对象,所以不存在包含引用的vector。除此之外,其他大多数(非引用)内置类型和类类型都可以构成vector对象,甚至组成vector的元素也可以是vector。

    注:引用不是对象,它只是为一个已经存在的对象所起的另外一个名字。因此,因为引用本身不是一个对象,不能定义引用的引用。

    6.在c++11之前,vector<vector<..> >必须在外层的尖括号之间添加以一个空格,避免编译器认为是>>右移操作符。但是在C++11标准中,可以不用加空格。这条对其他的容器也适用。


    定义和初始化vector对象

    初始化vector对象的方法:

    vector<T> v1        v1是一个空vector,它潜在的元素是T类型的,执行默认初始化

    vector<T> v2(v1)      v2中包含v1所有元素的副本

    vector<T> v2 = v1      等价于v2(v1),v2中包含v1所有元素的副本

    vector<T> v3(n,val)      v3包含n个重复的元素,每个元素的值都是val

    vector<T> v4(n)        v4包含了n个重复地执行了值初始化的对象

    vector<T> v5{a,b,c..}     v5包含了初始值个数的元素,每个元素被赋予相应的初始值

    vector<T> v5 = {a,b,c...}  等价于v5{a,b,c..} ===> C++11 ???

    事实上,最常见的初始化方式是先定义个空vector,然后当运行时获取到元素的值后再逐一添加

    vector所支持的操作:

    v.empty()    是否为空, 空返回真, 非空返回假

    v.size()      返回v中元素的个数

    v.push_back()

    v[n]

    ....未完

  • 相关阅读:
    jsonp 的 post
    js replace常用用法
    zindex
    x秒前
    手写jsonp
    webview 冒泡慢?
    人民币大写转阿拉伯数字
    checked
    Deadlock Troubleshooting Trace 1222
    [转]基于LUCENE实现自己的推荐引擎
  • 原文地址:https://www.cnblogs.com/niie9/p/6155966.html
Copyright © 2011-2022 走看看