C++之数据类型,容器

容器类型:

  vector  //其实就是常规数组(适合随机访问元素,但在头部和尾部插入元素开销大)

  list    //适合在头部和尾部插入元素,但随机访问元素开销大,必须遍历所有,比如list<string> abc(3,"a");abc[0]就不行,vector就可以(详见c++primer 9.5容器的选用)

  map

vector:

  定义和常规使用

vector<int> box(2,5);          //定义大小为2,内容为5的vector
for (int i = 0; i < box.size(); i++)
{
    cout<<box[i]<<endl;         //output: 5 5
}

  定义和迭代器使用

 

vector<int> box(2,5);
for(vector<int>::iterator iter=box.begin() ; iter!=box.end() ; ++iter)  //定义迭代器iter并赋初始值为box.begin,每次判断是否指向最后一个数{
    *iter = 1;                  cout<<*iter<<endl;          //output : 1 1
}

关于容器的更多操作详见c++primer 第九章

时间: 2024-11-17 05:51:26

C++之数据类型,容器的相关文章

常用STL容器及算法举例

一 常用容器举例 1 vector: vector类似于动态数组,直接访问元素,从后面快速插入或者删除,示例代码如下: [cpp] view plaincopyprint? #include <iostream> #include <vector>//包含vector using namespace std;//指定命名空间 int main() { cout<<"----------vector test-----------"<<en

C++ 顺序容器(vector,list、deque,stack,queue)

顺序容器的种类有:vector,list.deque 顺序容器适配器: stack     //先进后出   栈 queue   //先进先出   队列 priority_queue   //也优先管理级的优先队列 1.头文件 #include <vector> #include <list> #include <deque> //每一种头文件对应一种顺序容器 #include <queue> //队列 优先队列的头文件 #include <stack

Python collections.defaultdict() 与 dict的使用和区别

在Python里面有一个模块collections,解释是数据类型容器模块.这里面有一个collections.defaultdict()经常被用到.主要说说这个东西. 综述: 这里的defaultdict(function_factory)构建的是一个类似dictionary的对象,其中keys的值,自行确定赋值,但是values的类型,是function_factory的类实例,而且具有默认值.比如default(int)则创建一个类似dictionary对象,里面任何的values都是in

模板……基础知识笔记

函数模板技术定义了参数化的非成员函数,这时的程序能够不同的参数类型调用相同的代码 类模板:管理其他数据类型的通用数据类型 容器:容器区别  使用范例 泛型编程:独立于任何特定类型实现的方式编写代码.需要用户提供具体程序实例所操作的类型或值. 继承和多态有什么区别 1.  什么是继承,继承的特点? 子类继承父类的特征和行为,使得子类具有父类的各种属性和方法.或子类从父类继承方法,使得子类具有父类相同的行为. 特点:在继承关系中,父类更通用.子类更具体.父类具有更一般的特征和行为,而子类除了具有父类

[转载]Python 3 collections.defaultdict() 与 dict的使用和区别

文章转自: http://www.cnblogs.com/herbert/archive/2013/01/09/2852843.html Python 3 collections.defaultdict() 与 dict的使用和区别 在Python里面有一个模块collections,解释是数据类型容器模块.这里面有一个collections.defaultdict()经常被用到.主要说说这个东西. 综述: 这里的defaultdict(function_factory)构建的是一个类似dict

CS231n:Python Numpy教程

Python 基本数据类型 容器 列表 字典 集合 元组 函数 类 Numpy 数组 访问数组 数据类型 数组计算 广播 SciPy 图像操作 MATLAB文件 点之间的距离 Matplotlib 绘制图形 绘制多个图形 图像 Python python实现的经典的quicksort算法: 1 def quicksort(arr): 2 if len(arr)<=1: 3 return arr 4 pivot = arr[len(arr)/2] 5 left = [x for x in arr

记录爱忘记的STL知识点

1.vector容器初始化 //定义一个vector vector <int> vec; vector <int> vec1(12);//12个int类型元素,每个元素的初始值均为0 vector <int> vec2(12,9);//12个int,初试值均为9 //使用数组初始化vector int a[]={0,1,2,3,4,5,6,7,8,9,0}; //vector <数据类型> <容器名> (<开始地址>,<结束地址

js 数组深度去重

在日常开发中难免会遇到数组去重的难题,最近,正是给一个数组去重的难题难到了.作为开发者的我们,一旦遇到问题必然就是谷歌,百度,MDN....搜索一波,但是,这些地方都没有找到我想要的答案.或许看到这你会开喷了,咋没有啊,网上一大堆去重方法,但是,这里的需求要的是深度去重,也就是说,引用类型也要去掉!!这时你会发现很多方法都不管用了,看了一波度娘的答案,绝大部分的都是循环,索引相等的方法去重,而且举的例子都是基本数据类型的去重,如果手上拿的是一个全是引用类型的数组,你会发现这些方法都没用了.在讲正

Thrift RPC 系列教程(1)——Thrift语言

Thrift不是严格意义上的编程语言,但是却胜过很多编程语言,充满了美感. 基础数据类型 Thrift 这门编程语言提供了如下几种基础的数据类型: bool: A boolean value (true or false) byte: An 8-bit signed integer i16: A 16-bit signed integer i32: A 32-bit signed integer i64: A 64-bit signed integer double: A 64-bit floa

2019.07.02

流程控制(if while for) if判断:模拟人一样对事物进行判断 格式: if 条件:  # 代码块的概念:(同一缩进级别的代码,例如下面的代码1.2.3是相同缩进的代码,这三个代码组合在一起就是一个代码块:相同缩进的代码自上而下的运行) 代码1  # 空四格 代码2  # 空四格 代码3  # 空四格 ... gender = "male" height = 180 weight = 140 salary = 15.5 if gender == "male"