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]

    ....未完

  • 相关阅读:
    常见存储过程分页PK赛——简单测试分析常见存储过程分页速度
    简单的ASP.NET无刷新分页
    程序员45个好习惯
    手机应用兼职开发平台,欢迎有识之士参加...
    DotNetRemoting分布式安全部署(整理+原创)
    刚刚整理的截获SQL错误代码弹出提示信息类.
    485modbus通讯协议
    485通信
    ucoss在stm32上的移植
    使用OFFICE组件出问题环境配置
  • 原文地址:https://www.cnblogs.com/niie9/p/6155966.html
Copyright © 2011-2022 走看看