- 浏览: 124727 次
- 性别:
- 来自: 武汉
-
文章分类
最新评论
另外一种遍历方法是使用迭代器对iterator pair 来标记向量的起始处和结束处。迭代
器是一个支持指针类型抽象的类对象。vector 类模板提供了一对操作begin()和end(), 它们分
别返回指向向量开始处和结束处后1 个的迭代器,这一对迭代器合起来可以标记出
待遍历元素的范围。例如。下面的代码是前面代码段的一个等价实现
#include < vector >
extern int getSize();
void mumble()
{
int size = getSize();
vector< int > vec( size );
vector< int >::iterator iter = vec.begin();
for ( int ix = 0; iter != vec.end(); ++iter, ++ix )
*iter = ix;
// ...
}
iter 的定义
vector< int >::iterator iter = vec.begin();
将其初始值指向vec 的第一个元素,iterator 是vector 类模板中用typedef 定义的类型。
而这里的vector 类实例包含int 类型的元素。下面的代码使迭代器指向vector 的下一个元
素++iter
下面的代码解除迭代器的引用,以便访问实际的元素
*iter
能够应用到向量上的操作惊人地多。但是它们并不是作为vector 类模板的成员函数提供
的。它们是以一个独立的泛型算法集的形式,由标准库提供下面是一组可供使用的泛型算
法的示例。
搜索search 算法find()、 find_if()、search()、binary_search()、count()和count_if()。
分类排序sorting 与通用排序ordering 算法sort()、 partial_sort() 、merge()、
partition() rotate() reverse()和random_shuffle()。
删除deletion 算法unique()和remove()
算术numeric 算法accumulate()、partial_sum()、inner_product()和adjacent_
difference()。
生成generation 和变异mutation 算法generate()、fill()、transformation()
copy()和for_each()
关系Relational 算法equal()、min()和max()
泛型算法接受一对迭代器,它们标记了要遍历元素的范围。例如ivec 是一个包含某
种类型元素的某个长度的向量,要用sort()对它的全部元素进行排序,我们只需简单地这
样写:
sort( ivec.begin(), ivec.end() );
只想对ivec 向量的前面一半进行排序,可以这样写
sort( ivec.begin(), ivec.begin()+ivec.size()/2 );
泛型算法还能接受指向内置数组的指针对,例如已知数组
int ia[7] = { 10, 7, 9, 5, 3, 7, 1 };
我们可以如下对整个数组排序
sort( ia, ia+7 );
我们还可以只对前四个元素排序
sort( ia, ia+4 );
要使用这些算法我们必须包含与它们相关的头文件
#include <algorithm>
发表评论
-
在ubuntu7.10用终端编译运行c++程序
2008-02-27 15:54 1039<script>function StorePag ... -
函数指针大全
2009-01-01 18:44 520<script>function StorePag ... -
问题的解决
2009-05-20 00:16 523<script>function StorePag ... -
1.2 C++程序
2009-05-20 23:16 600<script>function StorePag ... -
C++的预处理器指示符
2009-05-21 22:58 900<script>function StorePag ... -
1.4 注释
2009-05-23 00:05 569<script>function StorePag ... -
1.5 输入输出初步
2009-05-23 23:18 566<script>function StorePag ... -
2.3 基于对象的设计
2009-05-27 22:17 595<script>function StorePag ... -
基于对象的设计(2)
2009-05-28 23:48 513<script>function StorePag ... -
基于对象的设计(3)
2009-05-30 00:51 529<script>function StorePag ... -
基于对象的设计(4)
2009-05-31 02:07 630<script>function StorePag ... -
基于对象的设计(5)
2009-05-31 22:50 691<script>function StorePag ... -
面向对象的设计(1)
2009-06-02 01:44 613<script>function StorePag ... -
面向对象的设计(2)
2009-06-03 00:22 676<script>function StorePag ... -
面向对象的设计(3)
2009-06-03 22:51 612<script>function StorePag ... -
面向对象的设计(4)
2009-06-05 00:05 635<script>function StorePag ... -
面向对象的设计(5)
2009-06-05 23:17 742<script>function StorePag ... -
泛型设计(1)
2009-06-07 00:28 621<script>function StorePag ... -
泛型设计(2)
2009-06-08 01:04 680<script>function StorePag ... -
泛型设计(3)
2009-06-09 01:14 609<script>function StorePag ...
相关推荐
例如,`B = {1, '字符串', [1 2 3]}`创建了一个包含整数、字符串和向量的单元数组。 2. 访问和修改元素:同样用方括号访问,如`B{2}`获取第二个单元格的内容。 3. 操作与转换:可以使用`cell2mat`函数将单元数组转换...
在实际编程中,我们还常常使用数组函数,如`mean`(均值)、`std`(标准差)、`sum`(求和)和`prod`(乘积)等对矩阵进行统计分析。另外,MATLAB中的`reshape`函数可将数组重塑为新的尺寸,`squeeze`移除单个维度,...
从Matlab转向Numpy,开发者需要理解这些差异,并利用Python的强大功能,如模块系统、异常处理和丰富的标准库。 总结,Python的记录数组提供了结构化的数据存储,内存映射允许处理大型数据集,而从Matlab到Numpy的...
H = randn(3,2) % 3x2的标准正态分布随机矩阵 ``` 除了基本的创建方法,MATLAB还提供了许多其他函数来生成特定类型的矩阵,如稀疏矩阵(`sparse`)、eye矩阵(`eye`)、hilb矩阵(`hilb`)等,这在处理大规模数据时...
- **对角矩阵**:`diag(a)` 其中a为向量,生成一个对角线元素为向量a的矩阵。 - **随机矩阵**:`rand(m, n)` 生成m×n的[0, 1]区间内的均匀分布随机矩阵;`randn(m, n)` 生成m×n的均值为0,标准差为1的正态分布...
- 示例3.1-1和3.1-2展示了符号计算与数值计算的区别。在无法获得解析积分的情况下,数值计算如`cumtrapz`函数能有效地近似积分。 2. **数值数组的创建和寻访**: - **一维数组的创建**:可以通过递增/减序列(如`...
本资源包含基于Matlab的使用std函数计算矩阵、数组、向量元素标准差源码绘图素材 包含 实例1:创建一个矩阵并计算矩阵每列元素的标准差 实例2:创建一个矩阵并计算矩阵每行元素的标准差 实例3:创建一个三维数组并...
2. **SLEN与VLEN布局**:SLEN(向量长度)等于VLEN(向量寄存器长度)的布局现在是强制性的。这意味着所有支持向量扩展的RISC-V处理器必须有相同长度的向量寄存器和系统长度。 3. **ELEN与LMUL的关系**:对于LMUL...
### 向量、数组与矩阵的基本操作 #### 一、向量、数组与矩阵的创建 在计算机科学中,向量、数组与矩阵是处理数值数据的重要工具。本章节主要介绍如何在编程环境中创建这些基本的数据结构。 ##### 1.1 向量的创建 ...
例如,一维数组在数学上可以被视为向量,而二维数组则可以视为矩阵。 - **数组**:这是计算机科学中的一个基本概念,用来表示存储在内存中的一系列数据的集合。数组中的元素可以通过索引来访问,并且这些元素可以是...
#### 七、常用标准数组生成函数和数组构造技巧 MATLAB提供了一系列函数用于生成特定类型的数组,例如: - `zeros`:生成全零数组 - `ones`:生成全一数组 - `eye`:生成单位矩阵 - `linspace`:生成线性分布的数组 ...
Matlab还提供了数组函数,如`sum`(求和)、`mean`(平均值)、`std`(标准差)、`max`(最大值)和`min`(最小值)等,它们可以对数组的每一行、每一列或整个数组进行统计计算。例如,`mean(a)` 返回矩阵a的每列的...
首先,我们创建了两个一维整型数组`arr1`和`arr2`,分别初始化为`{1, 2, 3, 4, 5}`和`{6, 7, 8, 9, 10}`。数组的长度可以通过`sizeof`运算符除以单个元素的大小来计算,即`sizeof(arr1) / sizeof(arr1[0])`,这里...
- **行向量与列向量**:向量是一维数组,可以是行向量(如`v = [1 2 3]`)或列向量(如`v = [1; 2; 3]`)。 - **向量操作**:包括向量相加、相减、点乘和叉乘等。例如,两个向量的点乘可以表示为`dot(v1, v2)`,而...
- `randn(m,n)`:生成一个m行n列的标准正态分布随机矩阵(均值为0,方差为1)。 - `linspace(a,b,n)`:生成一个从a到b的等差序列,包含n个元素。 - `blkdiag(A1,A2,...)`:创建一个由对角矩阵A1, A2,...组成的块对角...
B]`水平连接,`[A B]`垂直连接)和切片(如`A(2:4,3:end)`)允许我们操纵数组的子集。数组重排(如`reshape(A,m,n)`)和线性化(如`vec(A)`将矩阵转换为向量)也是常见的操作。 在实际应用中,例如计算土壤体积的...
本教程将深入探讨矩阵数组及其在MATLAB中的应用,旨在帮助用户提升MATLAB技能,进行更高效的编程实践。 首先,我们要理解矩阵的定义。在MATLAB中,矩阵是一种二维数组,可以包含实数、复数或逻辑值。矩阵的基本操作...
数组则是更广义的概念,包括一维数组(如列向量)和多维数组。在MATLAB中,数组的所有元素必须是同类型的,可以是数值、逻辑值或复数。 二、列向量与矩阵运算 列向量是MATLAB中的基本数据结构之一,它是一维数组,...
- `ndarray`是NumPy中的基础数据结构,它可以表示一到多维数组,类似于矩阵或向量。与其他Python列表相比,`ndarray`在内存中是连续存储的,这使得对数组元素进行批量操作非常快速。 - 数组的形状(shape)定义了...
- **用途**:用于统计数组的平均值和标准差。 ##### cvCalcCovarMatrix - **功能**:计算协方差矩阵。 - **参数**: - `const CvArr** vects`:向量数组。 - `int count`:向量数量。 - `CvArr* cov_mat`:...