vetcor的基本操作

vector的基本操作

v.empty() 如果V中不含有任何元素,返回真;否则返回假
v.size() 返回v中元素的个数
v.push_back 向vector尾端中添加元素
v[n] 返回V中第n个位置元素的引用
v1=v2 用v2中元素的拷贝替换v1中的元素
v1={a,b,c,d} 用列表中的元素拷贝替换v1中的元素
v1==v2 比较1
v1!=v2 比较2
<,>=,>,>= 比较3

vector编程

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    //vector初始化方法
    vector<int> v1; //声明空vector对象
    vector<int> v2(10, 0);//10个0
    vector<int> v3{ 0, 1, 2, 3, 4, 5, 6 };
    vector<int> v4;
    //向vector中添加对象
    for (int i = 0; i<10; ++i)
    {
        v1.push_back(i);
    }

    //检查vector是否为空对象
    if (v1.empty())
    {
        cout << "v1 is empty!" << endl;
    }
    else
    {
        cout << "v1 has " << v1.size() << " elements" << endl;//使用size成员函数返回vector中元素的个数
    }

    v4 = v3;//vector可以进行赋值操作

    if (v3 == v4)//vector的关系运算
    {
        cout << "v3==v4" << endl;
    }
    //vector对象的输出
    for (auto i : v1)//表达方法1
        cout << i << " ";
    cout << endl;
    for (vector<int>::const_iterator beg = v1.begin(); beg != v1.end(); ++beg)//方法2
    {
        cout << *beg <<" ";
    }
    cout << endl;

    cout << "v2 value:" << endl;
    for (auto i : v2)//表达方法1
        cout << i << " ";
    cout << endl;
    cout << "v3value:" << endl;
    for (auto i : v3)//表达方法1
        cout << i << " ";
    cout << endl;
    cout << "v4 value:" << endl;
    for (auto i : v4)//表达方法1
        cout << i << " ";
    cout << endl;
    return 0;
}

vector下标索引错误
vector对象(以及string对象)的下标运算符可用于访问已存在的元素,而且不能用于添加元素

错误实例:

vector<int> ivec;//空vector对象
for (decltype(ivec.size()) ix = 0; ix != 10; ++ix)
    ivec[ix] = ix;//严重错误

编译器不会报错,但是在调试过程中出现严重错误,如下:

缓冲区泄露;其次给vector对象赋值,最好选用范围for语句,访问不存在的元素会产生缓冲区泄露,添加元素可以采用push_back成员函数;

时间: 2024-10-31 13:09:25

vetcor的基本操作的相关文章

&lt;二叉树的基本操作&gt;

#include<stdio.h> #include<stdlib.h> #include<string.h> #define num 100 #define OK 1 typedef int Status; typedef char DataType; typedef struct node { DataType data; struct node *lchild,*rchild; }BinTNode,*BinTree; Status CreateBiTree(Bin

iOS_UITextField 基本操作

基本操作 UITextField *userNameTextField = [[UITextField alloc] init]; userNameTextField.frame = CGRectMake(30, 100, 220, 50); [self.window addSubview:userNameTextField]; [userNameTextField release]; // 设置样式 userNameTextField.borderStyle = UITextBorderSty

Mongodb入门系列(4)——Mongodb体系结构与客户端基本操作及注意细节

说到Mongodb的体系结构,免不了与关系型数据库做个对比.这里以MySQL为例,我们进行一些比较: 从逻辑结构上对比: MySQL层次概念 MongoDB层次概念 数据库(database) 数据库(database) 表(table) 集合(collection) 记录(row) 文档(document) 在MongoDB中没有行.列.关系的概念,集合中的文档相当于一条记录,这体现了模式自由的特点. 从数据存储结构上对比: MySQL的每个数据库存放在一个与数据库同名的文件夹中,MySQL如

Oracle的基本操作-解除用户,赋予权限

一.表的基本操作 1. 用户管理 1.1 初始状态下系统的用户 在系统用户下,执行下面的查询语句可以查看到当前系统的所有用户  select * from dba_users; 1.2 创建一个用户 SQL> create user xp identified by xp; User created. 授予连接数据库的权限:SQL> grant connect to xp; Grant succeeded. SQL> conn xp/xp;Connected. 1.3 解锁一个用户并修改

数据结构中线性表的基本操作-合并两个线性表-依照元素升序排列

#include<iostream> #include<stdlib.h> #define LIST_INIT_SIZE 10/*线性表初始长度*/ #define LIST_CREATENT 2/*每次的增量*/ typedef int ElemType; using namespace std; typedef struct SqList/*线性表的数据结构定义*/ { ElemType *elem;/*线性表基址*/ int length;/*当前线性表所含的元素个数*/ i

【华为技术】VRP平台基本操作

一.显示系统信息 <Huawei>display version 图上所示可以知道VRP平台信息,运行的版本,运行的时间 二.修改和查看设备系统时间参数 1.查看时间 <Huawei>display clock 2.修改系统日期和时间 三.进入系统视图界面 <Huawei>system-view 可以配置接口.路由协议等 四.修改设备名称 五.配置登录标语信息 [R1]header shell information "Welcome to Huawei ro

Mysql查询优化从入门到跑路(三)查询的基本操作

查询的基本操作 1.选择操作 对应的是限制条件,操作对象是二维表的行. 优化方式:选择操作下推 目的:尽量减少连接操作前的元租数,使得中间临时关系尽量少(元祖数少,连接得到的元组数就少) 好处:这样可能减少IO和CPU的消耗.节约内存空间 2.投影操作 对用的SELECT查询的目的列对象 优化方式:投影操作下推 目的:尽量减少连接操作前的列数,使得中间临时关系尽量小(选择操作是使元组的个数尽量少,投影操作是使一条元组尽量少) 好处:虽然不能减少IO(多数数据库存储方式是行存储,元组是读取的最基本

TP框架对数据库的基本操作

数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是对数据的增删改的操作,一步步的讲述一下框架对数据库的操作 想要操作数据库,第一步必然是要:链接数据库 一.链接数据库 (1)找到模块文件夹中的Conf文件夹,然后进行编写config.php文件 我这里是这样的文件路径 (2)打开这个config.php文件,然后找到父类配置文件convention.php文件,将关于"数据库"的部分复制粘贴到config.php配置文件中 1 2 3 4 5 6 7 8 9 /

图形数据库Neo4J的基本操作

1.创建一个节点 1 语法:CREATE (node-name:label-name{Property1-name:Property1-Value,...Propertyn-name:Propertyn-Value}) 2 如: 3 create(江湖流派:明教{name:'张无忌',skill:'九阳真经'}) 2.为两个节点建立关系 1 语法:CREATE(node1:label1)-[relationship-name:relationship-label-name]->(node2:la