栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > C/C++/C#

C++容器

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++容器

C++是一种静态的数据类型,在编译器进行类型的检查,代码执行是从上到下的执行,以函数为执行单元。因他是面向过程的。
默认的int,short,long都是带符号类型的,添加unsigned 进行修饰,可以设置为无符号类型,表示不接收负数,节约空间。
注:C语言运行时只有堆和栈内存,数据段,代码段,BSS段在编译时由编译器决定。

一,数组

数组的定义格式是:类型 数组名【元素个数】,也可赋初始值,不赋值时默认是0,数组的定义是一块连续的内存空间,其大小创建时已经固定。

int  arr[5]={1,4,5};

使用时,可以根据下标直接访问
例如arr[2]就是取出数组中下标为2的元素值。
可以使用负值下标。

二,字符串

使用双引号括起来的就是字符串常量。“”是标识字符串结束的一串字符。
字符串是基于字符数组进行扩展实现的。
cout用于字符串输出,cin用于字符串输入。
字符串变量的定义
string str,str1;
也可以在定义时赋初始值,这样可以直接操作字符串。直接使用字符串的+或=操作。

三,结构体

描述一个复杂对象组合成一个整体时可以使用结构体。
例如

struck book{
    char  author;
    int  age;
}

使用了面向对象的思想
共用体
允许在相同的位置存储不同的数据类型,提供了一种使用相同内存位置的有效方式,同时只有一个对象有赋值。
使用时,用union修饰。

union MyStudent{
    
}
四,动态数组 1.vector

动态数组,长度动态可变,在运行时,动态赋值,不用考虑空间问题,可以通过下标和迭代器访问,可以整体赋值。
使用时需要添加头文件
定义时需要指出数据类型和规模,规模可以是变量。
例如
vector v1;

2.array

效率比vector 高,规模固定
例如

array  a1;

相较于数组,array可以直接互相赋值。

3.valarray

基于Array的基础上实现了更加强大的扩展功能
例如
1)返回包含的元素数
2)所有元素总和
3)返回最大的元素
4)返回最小的元素

4,二维数组

定义

int  a[3][4];表示,定义了一个有三元元素的数组,每个元素是一个长度为4的数组
int  a[3][4]  ={{1,2,3,4},{5,3,2,1},{3,4,5,6}}

在C++中容器分为序列式和关联式,存放一组同类型的对象。

六,Set

容器内元素唯一,使用end表示结尾

set m_set;
m_set.insert(1);
m_set.insert(2);
m_set.clear();//清空set
七,Map

键值对的存储容器,键值不能为空,使用时需要导入引用

map m_map;
m_map.insert("zhans", 1);

基本方法

函数名功能
my_map.insert()按照数组直接赋值 插入
my_map.find()查找一个元素
my_map.clear()清空
my_map.erase()删除一个元素
my_map.size()map的长度大小
my_map.begin()返回指向map头部的迭代器
my_map.end()返回指向map末尾的迭代器
my_map.rbegin()返回一个指向map尾部的逆向迭代器
my_map.rend()返回一个指向map头部的逆向迭代器
my_map.empty()map为空时返回true
my_map.swap()交换两个map,两个map中所有元素都交换
八,迭代器

一个抽象的指针,可以遍历容器中所有的对象,不同的容器对应着不同的迭代器,被定义为容器类的公有内嵌类。

iterated find_ar(iterator  ar,int  n,const  double  &val){
    for(int i=0;i 

容器的迭代器一般提供两个函数,begin和end 标识容器开头和结尾。

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1038178.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号