当前位置:首页 > C++ > 正文内容

C++ vector 初始化

admin2年前 (2020-09-28)C++930

有几种初始化的方式,直接扔到代码里看了:

#include <vector>
#include <iostream>
#include <algorithm>

using namespace std;

//为了方便输出元素,写了个函数
void PrintVectorElements(vector<int> v);

int main()
{
    //初始化方式1,没有添加元素,此时size是0,capacity也是0,此时还未分配空间,可用于长度未知的情况。
    vector<int> v1;
    cout << "v1 size:" << v1.size() << " "
         << "v1 capacity:" << v1.capacity() << endl;

    for (int i = 0; i < 10; i++)
    {
        v1.push_back(i);
    }

    PrintVectorElements(v1);

    //初始化方式2,v2是v1的拷贝,v2和v1必须具有相同的类型,完成后v2拥有与v1相同的长度。下面两种方式是一样的。
    vector<int> v2 = v1;
    vector<int> v3(v1);
    PrintVectorElements(v2);
    PrintVectorElements(v3);

    //初始化方式3,使用已有容器的指定迭代器范围内的元素进行初始化
    vector<int> v4(v1.begin() + 1, v1.begin() + 3);
    PrintVectorElements(v4);

    //初始化方法4,下面表示的是包含10个元素的容器,且每个元素的值都是0
    //或者如第二种10个元素的值均为1
    vector<int> v5(10);
    vector<int> v6(10, 1);
    PrintVectorElements(v5);
    PrintVectorElements(v6);

    //初始化方法6,直接用中括号里面写元素
    vector<int> v7 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    PrintVectorElements(v7);

    cin.get();
    return 0;
}

void PrintVectorElements(vector<int> v)
{
    for (int i = 0; i < v.size(); i++)
    {
        cout << v[i] << " ";
    }
    cout << endl;
}


扫描二维码推送至手机访问。

版权声明:本文由lovedm.club发布,如需转载请注明出处。

本文链接:https://lovedm.club/?id=87

分享给朋友:

“C++ vector 初始化” 的相关文章

C++ vector

vector是一个容器,类似于数组,使用的顺序存储结构,可以看做是可以动态拓展的数组,使用vector的优点是其以常数时间进行索引,缺点是在中间进行插入和删除操作代价比较高,但是如果插入和删除发生在尾端速度仍然较快。使用时需要包含头文件#include<vector>初始化方式:vect...

C++读取ASCII格式DEM数据

C++读取ASCII格式DEM数据

要使用OpenGL显示DEM,就把tif的DEM转成了ASCII格式的,用的是ArcMap工具箱里的栅格转ASCII,转出来的格式是这样的:用了6行来描述数据,如下:第一行:数据的列数ncols第二行:数据的行数 nrows第三行:数据左下角的X值xllcorner第四行:数据左下角的Y值yllco...

C++计算程序运行的时间

最近在程序中有个读取文件的操作,想知道耗费的时间,查找之后大家都在用C++11中的库chrono,找了个能运行的现成写好的类:链接代码如下:#include <iostream> #include <chrono> using names...

C++ 计算点到空间直线的距离

最近的工作中需要计算空间中点到直线的距离,网上找了个算法:链接很简单,就是余弦定理算出余弦,知道余弦算出正弦,然后求出高也就是距离。当然这里不考虑效率问题,实验性的代码,先能用再优化。struct Point {     double ...

C++ 派生类的析构函数的执行顺序

C++ 派生类的析构函数的执行顺序

C++中派生类是不会继承父类的构造函数和析构函数的,这一点要明确。派生类中构造函数的执行顺序是先父类的构造函数然后当前类,析构函数则相反。举例如下:#include <iostream> using namespace std; class&nb...