CArray属于MFC,是一个数组模板类。MFC的数组类支持的数组类似于常规数组,可以存放任何数据类型。常规数组在使用前必须将其定义成能够容纳所有可能需要的元素,即先确定大小,而MFC数组类创建的对象可以根据需要动态地增大或减小,数组的起始下标是0,而上限可以是固定的,也可以随着元素的增加而增加,数组在内存中的地址仍然是连续分配的。但是声明一个carray数组必须是确定数组长度,可以之后随元素增加而增加。
使用CArray要添加一个头文件#include <afxtempl.h>
基本函数:
CArray::GetSize
int GetSize( ) const;取得当前数组元素个数.
CArray::GetUpperBound
int GetUpperBound( ) const;最得最大的元素的索引,由于C的数组是从0开始,所以此函数的返回值比GetSize的返回值比 小.
CArray::SetSize
void SetSize( int nNewSize, int nGrowBy = -1 );throw( CMemoryException );
设置数组的大小.
CArray::FreeExtra
void FreeExtra( );释放未使用的空间.
CArray::RemoveAll
void RemoveAll( );删除所有的元素.
CArray::GetAt
TYPE GetAt( int nIndex ) const;
根据索引(参数)取得某个数组元素的值.
根据索引(参数)取得某个数组元素的值.
CArray::SetAt
void SetAt( int nIndex, ARG_TYPE newElement );将第nIndex的元素的值设置成newElement.
CArray::ElementAt
TYPE& ElementAt( int nIndex );取得第nIndex个元素的引用.
CArray::GetData
const TYPE* GetData( ) const;TYPE* GetData( );
取得静态数组指针.
void SetAtGrow( int nIndex, ARG_TYPE newElement );
throw( CMemoryException );将第nIndex个元素设置成newElement,如果数组元素不够,会增加空间.
CArray::Add
int Add( ARG_TYPE newElement );throw( CMemoryException );
增加一个元素.
CArray::Append
int Append( const CArray& src );将另一个数组追加过来.
void Copy( const CArray& src );
复制数组,已经内容将会被覆盖.CArray::InsertAt
void InsertAt( int nIndex, ARG_TYPE newElement, int nCount = 1 );throw( CMemoryException );
void InsertAt( int nStartIndex, CArray* pNewArray );
throw( CMemoryException );
插入一个元素(或另一个数组)到数组.
CArray::RemoveAt
void RemoveAt( int nIndex, int nCount = 1 );删除另一个元素.
CArray::operator [ ]
TYPE& operator []( int nIndex );TYPE operator []( int nIndex ) const;
通过索引设置或取得另一个元素.
Codeforces Round #333 (Div. 2) A. Two Bases 水题
SPOJ 1557. Can you answer these queries II 线段树
线段树 模板
Codeforces Round #115 B. Plane of Tanks: Pro 水题
Codeforces Round #115 A. Robot Bicorn Attack 暴力
Codeforces Beta Round #51 C. Pie or die 博弈论找规律 有趣的题~
Codeforces Beta Round #51 B. Smallest number dfs
Codeforces Beta Round #51 A. Flea travel 水题
Codeforces Beta Round #51 D. Beautiful numbers 数位dp
- 最新文章
-
一致性哈希算法学习及JAVA代码实现分析
一个简单的"RPC框架"代码分析
JAVA 动态代理学习记录
在O(n) 时间复杂度,O(1)空间复杂度内反转单链表
AVL树的JAVA实现及AVL树的旋转算法
JAVA 同步之 synchronized 修饰方法
JAVA NIO 中的 zerocopy 技术提高IO性能
Maven 手动添加第三方依赖包及编译打包和java命令行编译JAVA文件并使用jar命令打包
hdu 5586 Sum 最大子段和
uva 11983 Weird Advertisement 扫描线
- 热门文章
-
UVALive 7070 The E-pang Palace 暴力
UVA 11990 ``Dynamic'' Inversion 动态逆序对
zoj 2112 Dynamic Rankings 动态第k大 线段树套Treap
HDU 5029 Relief grain 树链剖分打标记 线段树区间最大值
SPOJ LIS2 Another Longest Increasing Subsequence Problem 三维偏序最长链 CDQ分治
hdu 4494 Teamwork 最小费用最大流
cdoj 574 High-level ancients dfs序+线段树
Codeforces Round #333 (Div. 1) C. Kleofáš and the n-thlon 树状数组优化dp
Codeforces Round #333 (Div. 1) B. Lipshitz Sequence 倍增 二分
Codeforces Round #333 (Div. 2) C. The Two Routes flyod