关联数组

Posted donggongdechen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关联数组相关的知识,希望对你有一定的参考价值。

关联数组是用户定义类型中最常见的也是最有用的一类。关联数组也常被成为映射(map),有时被

成为字典(dictionary),其中保存的是值的对偶。给定了一个称为关键码的值,我们就能访问另一个

称为映射值的值。可以将关联数组想象为一个下标不必是整数的数组:

template<class K, class V>class Assoc {

public:

    V& operator[] (const K&); //返回对应于K的V的引用

};

这样,一个类型为K的关键码就起到作为类型为V的映射值的名字的作用。

map要求其关键码类型提供一个小于操作,以保持自己元素的有序性。

一个map也就是pair<const Key, mapped_type>的一个序列。

在map上的迭代器也就是在以pair<const Key, mapped_type>为元素的序列上的迭代器。

void f(map<string, number>& phone_book) {

    typedef map<string, number>::const_iterator CI;

    for(CI p=phone_book.begin();p!=phone_book.end();++p)

        cout<<p->first<<" "<<p->second<<" ";

}

复制一个容器隐含着为它的所有元素分配空间,并完成每个元素的复制工作。这样做的

代价可能非常高,只有迫不得已时才应该去做它。因此,像map这样的容器一般通过引用

传递。

 

以上是关于关联数组的主要内容,如果未能解决你的问题,请参考以下文章

关联数组VS索引数组

PHP 数组中的每个ID键关联一个值,可不可以关联两个值?

PDO 关联数组 - 返回关联

将关联数组更改为索引数组/获取 Zend_Table_Row_Abstract 作为非关联

关联数组

JS 索引数组关联数组和静态数组动态数组