c++ vector使用

动态数组,使用方法与python数组类似

1.定义和初始化

vector<type> name 创建一个名为nama的type类型vector
vector<type> name={val1,val2,val3} 创建数组并初始化为[val1,val2,val3]
vector<type> name2(name1) 使用name1的元素初始化name2(深拷贝,name1和name2的操作互不影响)
vector<type> name(n,val) 创建一个名为name的数据类型为type的vector,并且初始化为包含了n个val
vector<type> name(n) name包含n个默认值初始化
vector<vector<type>> matrix(M,vector<type>(N)) 二维数组初始化,创建M*N的二维矩阵

vector<int> v;//创建一个名为v的int类型数组
vector<int> v={1,2,3};//创建一个名为v的int类型数组,并初始化为[1,2,3]
vector<char> v2(v1);//使用char类型数组v1初始化v2
vector<int> v(10,1);//创建一个int类型数组v,包含10个元素都为1
vector<char> v(5);//创建一个char类型数组,包含5个元素
vector<vector<int>> matrix(10,vector<int> (5));//创建一个尺寸为10*5的二维int类型矩阵,初始化默认为0

2.常用api

api 作用 说明
push_back(val)

末尾添加元素val,深拷贝
pop_back 删除末尾元素
v[index]=val 修改下标为index的值为val
v.size() 返回v中元素个数
v.clear() 清空数组 等效于v={}
int main() {

    vector<int> v = { 1,2,3 };//创建vector,并初始化为[1,2,3]
    //1.增加元素
    v.push_back(4);//[1,2,3,4]

    //2.删除元素
    v.pop_back();//[1,2,3]

    //3.修改
    v[0] = 0;//[0,2,3]

    //4.查看数组大小
    cout << v.size() << endl;//输出3

    //5.清空数组
    v.clear();
    cout << v.size();
}

3.遍历元素

int main() {
    vector<int> v = { 1,2,3 };//创建数组

    //auto表示自动分配数据类型,&表示创建temp应用,可以通过修改temp修改数组的值
    for (auto& temp : v)
    {
        temp = temp + 1;//遍历数组所有元素并+1
    }
    for (auto& temp : v)
    {
        cout << temp << endl;//循环三次,依次输出2,3,4
    }
}

4.其他常用操作

v1==v2 判断两vector相等,长度与内容都相等时才为true
v2=v1 用v1的元素替换v2的元素(深拷贝,互不影响)
sort 排序,直接修改原数组内容,无返回值。配合begin、end,rbegin、rend实现正反排序
int main() {
    vector<int> v = { 4,1,2,3 };//创建数组
    
    sort(v.begin(), v.end());//由小到大排序[1,2,3,4]

    for (int temp : v)//打印输出
    {
        cout << temp << endl;
    }

    sort(v.rbegin(), v.rend());//由大到小排序[4,3,2,1]

    for (int temp : v)//打印输出
    {
        cout << temp << endl;
    }
}

相关推荐

  1. conda使用,pip使用

    2024-03-11 15:52:04       57 阅读
  2. VueUse使用

    2024-03-11 15:52:04       67 阅读
  3. Git<span style='color:red;'>使用</span>

    Git使用

    2024-03-11 15:52:04      60 阅读
  4. netty使用

    2024-03-11 15:52:04       55 阅读
  5. gdb<span style='color:red;'>使用</span>

    gdb使用

    2024-03-11 15:52:04      63 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-11 15:52:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-11 15:52:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-11 15:52:04       82 阅读
  4. Python语言-面向对象

    2024-03-11 15:52:04       91 阅读

热门阅读

  1. python中的错误和异常

    2024-03-11 15:52:04       36 阅读
  2. 网络安全风险评估:详尽百项清单要点

    2024-03-11 15:52:04       41 阅读
  3. C++中的常量指针和指针常量

    2024-03-11 15:52:04       43 阅读
  4. 自动化运维工具----Ansible入门详解

    2024-03-11 15:52:04       43 阅读
  5. multiprocessing快速入门和总结

    2024-03-11 15:52:04       35 阅读
  6. 突破编程_C++_STL教程( map 的基础知识)

    2024-03-11 15:52:04       27 阅读
  7. FlinkCDC快速搭建实现数据监控

    2024-03-11 15:52:04       38 阅读
  8. JVM笔记

    JVM笔记

    2024-03-11 15:52:04      30 阅读