- 浏览: 124712 次
- 性别:
- 来自: 武汉
-
文章分类
最新评论
正如我们已经看到的,尽管C++内置的数组支持容器的机制,但是它不支持容器抽象的
语义,为了在这样的层次上编写程序,在标准C++之前我们要么从某个途径获得这样的类,
要么自己实现这样的类。在标准C++中,数组类是C++标准库的一部分,现在它不叫数组
而叫向量vector 了。
当然向量是一个类模板,所以我们这样写
vector<int> ivec( 10 );
vector<string> svec( 10 );
上面的代码分别定义了一个包含10 个整型对象的向量和一个包含10 个字符串对象的向量。
在我们实现的Array 类模板与vector 类模板的实现之间,有两个主要区别,第一个区别是
vector 类模板支持向现有的数组元素赋值的概念以及插入附加元素的概念——即vector
数组可以在运行时刻动态增长,如果程序员希望使用这个特性的话,第二个区别是更加广
泛,代表了设计方法的重要转变。vector 类不是提供一个巨大的可以适用于向量的成员
操作集,如sort()、min()、max()及find()等等,而是只提供了一个最小集,如等于、小于操
作符,size()、empty()等操作,而一些通用的操作,如sort()、min()、max()和find()等等,则是
作为独立的泛型算法generic algorithm 被提供的。
要定义一个向量,我们必须包含相关的头文件
#include < vector >
下面都是vector 对象的合法定义
#include < vector >
// 创建vector 对象的各种方法
vector<int> veco; // 空的vector
const int size = 8;
const int value = 1024;
// size 为8 的vector
// 每个元素都被初始化为0
vector<int> vec1( size );
// size 为8 的vector
// 每个元素都被动始化为1024
vector<int> vec2( size, value );
// vtc3 的size 为4
// 被初始化为ia 的4 个值
int ia[4] = { 0, 1, 1, 2 };
vector<int> vec3( ia, ia+4 );
// vec4 是vec2 的拷贝
vector<int> vec4( vec2 );
既然定义了向量,我们就需要遍历里边的元素,与Array 类模板一样,标准vector 类模
板也支持使用下标操作符。例如
#include <vector>
extern int getSize();
void mumble()
{
int size = getSize();
vector< int > vec( size );
for ( int ix = 0; ix < size; ++ix )
vec[ ix ] = ix;
// ...
}
发表评论
-
在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 522<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 ...
相关推荐
本代码主要利用MATLAB工具实现MATLAM——创建空数组、行向量、列向量,简单明了,易于理解
在这个PPT教案中,我们将深入探讨Matlab中的基本数据结构——数组和向量。 数组在Matlab中扮演着核心角色,它们可以存储多维度的数据。数组的元素可以是单一的数据项,每个元素都有自己的位置,即行号和列号。对于...
本文将深入探讨三种基本的数据结构——数组、向量和字符串,它们在Java开发中占据着核心地位。 #### 一、数组 数组是Java中最基础的数据结构之一,用于存储固定大小的同类型元素集合。数组可以在一维或多维中定义...
"浙江工商大学数学线性代数——向量组PPT课件.pptx" 本PPT课件主要讲解线性代数中的向量组相关知识点,共77页,内容涵盖向量的定义、向量的线性运算、向量空间、向量组的线性相关性等。 一、向量的定义 * 向量...
5. **向量化逻辑操作**:在处理逻辑判断时,MATLAB同样支持向量化,例如`A>5`会产生一个与A同型的逻辑数组,表示A中的每个元素是否大于5。 向量化编程不仅提高了MATLAB代码的可读性和简洁性,而且由于MATLAB在内部...
综上所述,本教程的第三章详细介绍了MATLAB数值计算的核心——数组的创建、寻访、运算以及向量化编程,还包括对特殊数值(如NaN)的处理和逻辑关系操作。学习这部分内容,将为后续深入学习MATLAB的其他功能,如符号...
如果需要动态调整大小的数组,C++标准库提供了`std::vector`作为替代。`std::vector`是一种动态数组,可以在运行时改变大小。它的内部会自动处理内存管理,包括元素的插入和删除,使得这些操作比原始数组更高效。 ...
在MATLAB中,除了常规数组外,还有一种特殊类型的数组——元胞数组,它的每个元素可以是任意类型的数据。 3. **向量**: 向量可以视为一维数组,从数学角度看,向量分为行向量和列向量,它们都是特定形式的矩阵。...
作者将C++语言作为算法描述语言,应用包含规范化的数据结构的标准模板库,集中讲述了数组、向量、表、关联树容器,以及集合、映射、堆、哈希表和图等数据结构及其算法,重点讨论了如何高效地存储大型数据集合,涵盖...
本文将详细探讨这两者之间的差异,并通过一个具体的例子——三维数组——来进一步阐述。 首先,数组是MATLAB中最基础的数据类型,它可以包含任何相同类型的元素,如数值、字符串、逻辑值等。数组可以是一维、二维或...
作者将C++语言作为算法描述语言,应用包含规范化的数据结构的标准模板库,集中讲述了数组、向量、表、关联树容器,以及集合、映射、堆、哈希表和图等数据结构及其算法,重点讨论了如何高效地存储大型数据集合,涵盖...
向量类是C++标准库中的一个重要组成部分,属于STL(Standard Template Library,标准模板库)的一部分。在C++中,`std::vector`是实现动态数组概念的模板类,它允许我们创建一个可变大小的数组,可以方便地进行元素...
从不同的角度,我们可以将二维数组视为行向量或列向量的集合。如果我们将每一列作为一个元素,那么二维数组可以转换为一个线性表,其中每个元素是一个包含该列所有元素的一维数组。同样,如果我们将每一行看作一个...
此外,该程序还展示了如何实现简单的数学运算——向量相加,并通过适当的错误处理确保程序的健壮性。对于初学者而言,这是一个很好的学习示例,能够帮助他们理解C语言中的动态内存管理以及函数的定义与调用等核心...
在这个项目中,学生们需要理解和应用稀疏矩阵的压缩存储格式——CSR(Compressed Sparse Row)来实现矩阵与向量的乘法运算。 稀疏矩阵的CSR格式是一种存储非零元素的方法,它包括三部分:行索引数组I、列索引数组J...
例如,二维数组可以看作是由行向量组成的矩阵,每个行向量又是由多个元素组成的数组。这样的结构使得多维数组能够表达更复杂的数据关系,例如,矩阵乘法、图形数据等。 二维数组的定义和初始化也可以分为静态和动态...
书中详细介绍了包括数组、向量、列表、关联容器、集合、映射、堆以及哈希表和图在内的各种数据结构及其算法。通过这些内容,读者不仅能够学习到数据结构的基础知识,还能深入理解如何利用这些数据结构存储和处理大型...
或者一个包含20个三维向量的数组: ```glsl vec3 v3Arr[20]; ``` 访问数组中的元素就像在其他语言中那样直接使用下标,如`arr[0]`代表数组的第一个元素,`arr[1]`则为第二个元素。 在WebGL中,为了在着色器之间...
2. **数据结构与算法**:在处理K-Means时,数据通常被表示为多维数组或向量,每个元素代表一个数据点。程序需要有效地操作这些数据结构,执行计算距离、排序和迭代等操作。这可能涉及到对数组、向量或自定义数据结构...