value_type, key_type, mapped_type, reference,const_reference

来源:互联网 发布:淘宝联盟5.0 编辑:程序博客网 时间:2024/06/06 09:33
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
template<classKey,classT,classCmp=less<key>,
    classA=allocator<pair<constKey,T>>
classstd::map
{
public:
    //types
    typedefKey    key_type;
    typedefT    mapped_type;
 
    typedefpair<constKey,T>    value_type;
 
    typedef   Cmp    key_compare;
    typedefA    allocator_type;
 
    typedef   typename   A::reference    reference;
    typedef   typename   A::const_reference    const_reference;
 
    typedef   implementation_define1    iterator;
    typedefimplementation_define2    const_iterator;
 
    typedef   typename   A::size_type    size_type;
    typedef   typename   A::difference_type    difference_type;
 
    typedef   std::reverse_iterator<iterator>    reverse_iterator;
    typedef   std::reverse_iterator<const_iterator>    const_reverse_iterator;
    //...
}

注意:map的value_type是一个(key,value)对,映射值的被认为是mapped_type。因此,一个map是一个pair<const Key,mapped_type>元素的序列。从const Key可以看出,map中键key是不可修改的。


int main() {    map<string, char> testMap;    testMap["A"] = 1;    map<string, char>::mapped_type mapVal = testMap["A"];    vector<int> testVector;    testVector.push_back(1);    vector<int>::value_type vectorVal = testVector[0];    printf("%d\n", mapVal);    printf("%d\n", vectorVal);}

输出1, 1

0 0
原创粉丝点击