vector定义初始化
//头文件
#include<vector>
using std::vector;
vector<T> v1;
vector<T> v2(v1);
vector<T> v3(n,i);
vector<T> v4(n);
//创建确定个数的vector对象
vector<int> ivec4(10,-1);
vector<string> ivec4(10,"hi!");
//值初始化
//如果没有指定元素初始化,那么标准库将个自行提供一个元素初始值进行值初始化,如:vector保存内置类型(int)的元素,那么标准库将用0值创建元素舒适化式;
//如果保存的是有构造函数类型的元素,标准库将用改类型的默认构造函数创建元素初始化式;
//vector对象操作
v.empty()//如果v为空则返回true,否则返回false。
v.size()//返回v中元素的个数
v.push_back(t)//在v的末尾增加一个值为t的元素
v[n]//返回v中位置为n的数
v1=v2 // 把v1的元素替换为v2中元素的副本;
vi==v2 // 如果v1与v2相等则返回true
!=<<=>>=保持这些操作符惯有的含义
//vector对象的size
//使用size_type 时必须指出该类型是在哪里定义的
vector<int>::size_type
//向vector中添加元素
push_back()//将一个新元素添加到vector对象的后面
//vector的下标操作
for(vector<int>::szie_type ix=0; ix!=ivec.size(); ix++)
{
ivec[ix]=0;
}
//下标操作不能添加元素只能通过 push_back();下标操作仅能对已存在的元素进行下标操作
//vector迭代器
//标准库为每种标准容器定义了一种迭代器类型,所有的标准库迭代器都定义了相应的迭代器类型,而只有少数的容器支持下标操作
//容器的iterator类型
vector<int>::iterator iter;
//数据类型:由vector<int>定义的iterator类型。
//begin 和end操作
//每种容器都定义了一对命名为begin和end的函数,用于返回迭代器
vector<int>::iterator iter= ivec.begin();
//把iter初始化为由名为begin的vector操作返回值的值。及iter指该元素为ivec[0].
//vectror的自增和解引用运算
//迭代器类型使用解引用操作符(*操作符)来访问迭代器所指元素:
*iter=0;
++iter //指向第二个元素
//由于end操作返回的迭代器不指向任何一个元素,因此不能进行自增和解引用操作
//其他操作
==!=
//应用程序示例
for(vector<int>::iterator iter=ivec.gebin(); iter!=ivec.end();++iter)
{
*iter =0;
}
//const_iterator
//const_iterator自身的值可以改变,但不能改变其所指向的元素的值,可以对迭代器进行自增及解引用操作来读取值,但不能对该元素进行赋值
//const_iterator和const的iterator对象不一样
//声明一个const迭代器必须初始化,一旦初始化后就不能改变其值
vector<int> nums(10);
cosnt vector<int>::iterator cit= nums.begin();
*cit=1;//初始化
++cit;错不能改变cit的值
//迭代器的算术操作
iter +n
iter - n
vector定义初始化的更多相关文章
- java二维数组定义初始化-杨辉三角
public class Array2Demo2_3 { public static void main(String[] args) { //定义初始化 int[][] arr = new int[ ...
- 局部描述符表LDT的作用+定义+初始化+跳转相关
[0]写在前面 0.1)本代码的作用: 旨在说明局部描述符表的作用,及其相关定义,初始化和跳转等内容: 0.2)文末的个人总结是干货,前面代码仅供参考的,且source code from orang ...
- 120. Triangle 以及一个多维vector如何初始化
1.刚开始result的初始化写的是vector<vector<int>> result,然后再去对result[0][0] = triangle[0][0]赋值,一直报错.老 ...
- c++中的结构体:声明 定义 初始化
什么是结构体? 之前的学习中我们知道了数组是一个容器,而且是存放固定大小数据的容器,而且存放的元素的数据类型必须要一致. 比如数据库中有这样的一条记录学号 性别 年龄 成绩 地址应该怎样存放 结构体: ...
- C++踩坑——用memset对vector进行初始化
在一段程序中,使用memset对vector进行了初始化,然后得到了错误的结果.找这个bug花费了很长时间. vector中有其自身的结构,不能单纯的按字节进行初始化.使用memset对vector进 ...
- vector的初始化方式及用法笔记(不断更新)
vector的初始化方式 1)第一种,类似于数组的方式:vector<string> letter(3);letter[0] = "find";letter[1] = ...
- C++STL中vector的初始化
vector的初始化有很多方式,在N维初始化时还会一些容易出现错误的地方.下面进行总结 以下的总结均以int作为模板参数 一维vector的初始化 vector的构造函数通常来说有五种,如下: vec ...
- 多维的vector定义和初始化
vector<vector<int> >vv(3, vector<int>(4));//这里,两个“>”间的空格是不可少的 将构造一个二维向量vv,它含有三个 ...
- 在spring容器中定义初始化和销毁bean前所做的操作,有三种方式
1.使用注解,通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作 package com.luoq.test.annotation.init; ...
随机推荐
- LINQ to SQL语句(6)之Group By/Having
适用场景:分组数据,为我们查找数据缩小范围. 说明:分配并返回对传入参数进行分组操作后的可枚举对象.分组:延迟 1.简单形式: var q = from p in db.Products group ...
- js,jquery,css,html5特效
包含js,jquery,css,html5特效,源代码 本文地址:http://www.cnblogs.com/roucheng/p/texiao.html 2017新年快乐特效 jQuery最新最全 ...
- 关于linux下crontab的使用
minute hour day month dayofweek command minute - 从0到59的整数 hour - 从0到23的整数 day - 从1到31的 ...
- Java使用实现面向对象编程:第七章集合框架的解读=>重中之重
对于集合框架,是非常重要的知识,是程序员必须要知道的知识点. 但是我们为什么要引入集合框架呢? 我们之前用过数组存储数据,但是采用数组存储存在了很多的缺陷.而现在我们引用了集合框架,可以完全弥补了数组 ...
- Position属性四个值:static、fixed、relative、absolute的区别和用法
1.static(静态定位):默认值.没有定位,元素出现在正常的文档流中(如果设置 top, bottom, left, right, z-index这些属性就不起做作了). 2.relative(相 ...
- 菜鸟快飞之JavaScript函数
1.复制变量值 在说函数前,我觉得需要先说说关于变量值的复制,以便后面的理解. 复制基本类型的值: 当一个变量复制另外一个值为基本类型的变量时,两个变量可以参与任何操作而不会互相影响 var num1 ...
- switch语句的妙用
switch语句的普通用法很简单,如下: var a = 3; switch (a) { case 1: console.log(a); break; case 2: case 3: console. ...
- 深入理解DOM节点类型第二篇——文本节点Text
× 目录 [1]特征 [2]空白 [3]属性[4]方法[5]性能 前面的话 文本节点顾名思义指向文本的节点,网页上看到的文字内容都属于文本节点.该节点简单直观,本文将详细介绍该部分内容 特征 文本节点 ...
- Atitit 衡量项目的规模
Atitit 衡量项目的规模 1. 预估衡量项目的规模的方法1 1.1. 方法一.Delphi 法1 1.2. 方法二. 类比法1 1.3. 方法三.功能点估计法1 1.4. 方法四.PERT估计法2 ...
- KOTLIN开发语言文档(官方文档) -- 入门
网页链接:https://kotlinlang.org/docs/reference/basic-syntax.html 1. 入门 1.1. 基本语法 1.1.1. 定义包 包说明应该在源 ...