• vector


    这里记录一下vector支持的操作,最近看到了好多花里胡哨的。


    1.v.push_back(x):在末尾添加一个元素x.


    2.v.size():以无符号形式返回vector的大小


    3.v.clear():清空vector.


    4.v.pop_back():删除最后一个元素。


    5.v.emplace_back(x):这个就比较奇特了,主要用于卡常数。当你往vector里面放一个构造类型的变量时,如果用push_back()的话,在声明的时候会调用一次构造函数,放进vector的时再调用一次拷贝构造函数。而emplace_back()只调用一次构造函数,省去了大概一半的常数时间。
    需要注意的是,需要c++11支持。


    6.初始化:vector的初始化方法有好多种。
    (1)vector<int> v:默认初始化,大小为空。
    (2)vector<int> v = v2:v2和v必须为同类型的vector,用v2对v进行初始化。这里也可以看出vector支持整体的赋值。也可以写成vector<int> v(v2)
    (3)vector<int> v = {1, 2, 3}:将v的前三个元素分别对应赋值。若类型不一样,会自动进行类型转换(开了-Wall时会有Warning)。
    (4)vector<int> v(n):将v的初始大小设置为n,默认是0.
    (5)vector<int> v(n, m):将v的初始大小设置为n,每一个元素的值是m。
    所以如果有一个vector<vector<int> > v,即一个二维vector,那么可以这样初始化:vector<vector<int> > v(n, vector<int>(m, a)):表示将v初始化为一个n行m列,初值为a的表格。这个在交互题里比较常见。

  • 相关阅读:
    10个迷惑新手的Cocoa,ObjectiveC开发难点和问题
    如何成为Android高手
    利用ModalViewController切换View
    自定义导航栏的返回按钮(xcode)
    iphone开发笔记和技巧总结(原址持续更新)
    axis2出现错误
    NYOJ 214(二分插入)
    NYOJ 17(LIS转为LCS,但是MLE)
    NYOJ 214(LIS二分插入)
    NYOJ 36(增量法解决LCS)
  • 原文地址:https://www.cnblogs.com/mrclr/p/14099934.html
Copyright © 2020-2023  润新知