`
zybing
  • 浏览: 458910 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

如何在 Visual C++ 中使用的 map::end、 map::find、 map::insert、 map::iterator 和 map::value

    博客分类:
  • c++
 
阅读更多

源自: http://support.microsoft.com/kb/157159/zh-cn

如何在 Visual C++ 中使用的 map::end、 map::find、 map::insert、 map::iterator 和 map::value_type 标准模板库 (STL) 函数

文章编号: 157159 - 查看本文应用于的产品
展开全部 | 关闭全部

本页

概要

下面的代码示例演示如何用 Visual C++ map::end、 map::find、 map::insert、 map::iterator 和 map::value_type STL 的符号。

更多信息

所需的头文件

   <map>
				
原型
   iterator map::end();

   // Key is the data type of template argument #1 for map
   iterator map::find(const Key& key);
   pair<iterator, bool> map::insert(const value_type& x);
				
注意: 原型中的类/参数名称可能与中的头文件的版本不匹配。一些已被修改以提高可读性。

说明

End() 函数将返回一个迭代器,指向一个序列的末尾。

Find 返回一个迭代器,指定的排序关键字的第一个元素等于键。如果没有这样的元素存在,则迭代器等于 end()。

如果该项不存在,插入将添加到序列并返回对 < 迭代器,真 >。如果此键已存在,则插入不会添加到序列中的并返回对 < 迭代器,假 >。

下面的示例创建一个映射的为字符串的整数。在这种情况下,该映射是从数字为对应的字符串 (1->"One",2 >"2",等等。)。

程序读取用户的数量、 查找单词等效的 (使用地图),每一位并打印为词的一系列数字的背后。例如,如果用户输入 25463,该程序使用响应: 两个五四个六三。

示例代码

////////////////////////////////////////////////////////////////////// 
// 
// Compile options needed: None
// 
// <filename> :  main.cpp
// 
// Functions:
// 
//      end
//      find
//      insert
// 
// Written by Rick Troemel
// of Microsoft Product Support Services,
// Copyright (c) 1996 Microsoft Corporation. All rights reserved.
////////////////////////////////////////////////////////////////////// 
// disable warning C4018: '<' : signed/unsigned mismatch
// okay to ignore

#pragma warning(disable: 4018)

#pragma warning(disable:4786)
#include <iostream>
#include <string>
#include <map>
using namespace std;

typedef map<int, string, less<int>, allocator<string> > INT2STRING;
void main()
{
// 1. Create a map of ints to strings
    INT2STRING theMap;
    INT2STRING::iterator theIterator;
    string theString = "";
    int index;
// Fill it with the digits 0 - 9, each mapped to its string counterpart
// Note: value_type is a pair for maps...
    theMap.insert(INT2STRING::value_type(0,"Zero"));
    theMap.insert(INT2STRING::value_type(1,"One"));
    theMap.insert(INT2STRING::value_type(2,"Two"));
    theMap.insert(INT2STRING::value_type(3,"Three"));
    theMap.insert(INT2STRING::value_type(4,"Four"));
    theMap.insert(INT2STRING::value_type(5,"Five"));
    theMap.insert(INT2STRING::value_type(6,"Six"));
    theMap.insert(INT2STRING::value_type(7,"Seven"));
    theMap.insert(INT2STRING::value_type(8,"Eight"));
    theMap.insert(INT2STRING::value_type(9,"Nine"));
// Read a Number from the user and print it back as words
    for( ; ; )
    {
        cout << "Enter \"q\" to quit, or enter a Number: ";
        cin >> theString;
        if(theString == "q")
            break;
        // extract each digit from the string, find its corresponding
        // entry in the map (the word equivalent) and print it
        for(index = 0; index < theString.length(); index++){
            theIterator = theMap.find(theString[index] - '0');
            if(theIterator != theMap.end() )    // is 0 - 9
                cout << (*theIterator).second << " ";
            else    // some character other than 0 - 9
                cout << "[err] ";
        }
        cout << endl;
    }
}
				
程序的输出为:

Enter "q" to quit, or enter a Number: 22
Two Two
Enter "q" to quit, or enter a Number: 33
Three Three
Enter "q" to quit, or enter a Number: 456
Four Five Six
Enter "q" to quit, or enter a Number: q
				

参考

有关 map::end,map::find 和 map::insert 相同的信息,请访问下面的 MSDN Web 站点:
http://msdn.microsoft.com/en-us/library/wwcahb6y.aspx

分享到:
评论

相关推荐

    c++中map的基本用法和嵌套用法实例分析

    C++中的`map`是一个关联容器,它存储键值对,其中每个键都是唯一的。`map`的数据结构通常实现为红黑树,提供了O(log n)的时间复杂度进行插入、查找和...通过实例分析,我们可以更好地理解如何在C++中使用`map`容器。

    Map (c++实现的简易map)

    在C++标准库中,`Map`被实现为`std::map`,但在这个场景中,我们讨论的是一个用户自定义的简易`Map`实现,名为"MyMap",这是在Visual Studio 2013环境下编写的。 自定义`Map`的主要目的是为了学习和理解数据结构的...

    C++中map容器的说明和使用技巧

    C++中map容器的说明和使用技巧 C++中map容器提供一个键值对容器,map与multimap的差别仅仅在于multiple允许一个键对应多个值。map容器的使用技巧包括插入数据、查找数据和修改数据、删除数据、迭代数据等。 一、...

    C++map使用小例子

    在本示例中,“C++map使用小例子”提供了关于如何在C++程序中使用`std::map`的基本操作和应用。 `std::map`的主要特点和操作包括: 1. **插入元素**:可以使用`insert`函数或直接使用下标运算符`[]`来插入键值对。...

    C++ map使用

    在C++标准库中,`map`位于`&lt;map&gt;`头文件内,它允许用户以键值对的形式组织数据,并且支持高效地查找、插入和删除操作。 **1. map的基本概念** `map`容器内部使用红黑树(Red-Black Tree)数据结构实现,这保证了其...

    每天学点C++(C++实例教程:教程+源码)map容器.zip

    在C++中,`map`容器是STL(标准模板库)的一部分,它提供了一种关联数组的数据结构,使得我们可以通过键(key)来查找对应的值(value)。本实例教程将深入讲解`map`容器的使用方法和源码实践。 1. **map容器的基本...

    C++_map的基本操作和使用

    C++ 中 Map 的基本操作和使用 Map 是 C++ 中的一个标准容器,它提供了一对一的关系,在一些程序中建立一个 Map 可以起到事半功倍的效果。下面总结了一些 Map 的基本操作和使用。 Map 简介 Map 是一种关联式容器。...

    Struts iterator JSP Map 中嵌套 Map

    以下是一个简单的例子,展示了如何在JSP中使用Struts2的迭代器处理嵌套Map: ```jsp // 假设在Action中设置了一个名为user的属性,其值是一个包含嵌套Map的对象 User user = (User) request.getAttribute("user...

    C++ map详解

    在C++标准库中,`map`位于`&lt;map&gt;`头文件内。 一、基本概念 1. 键(Key):在`map`中,键是用于唯一标识元素的值,不能重复。 2. 值(Value):与键相关联的值,可以重复。 3. 对(Pair):键值对,由键和值组成。 4...

    map总结,原理,使用

    在 C++ 中,`std::map` 提供了这些功能,并确保了内部数据按照键的排序顺序被维护。 #### 二、Map 的主要特性 1. **插入与删除的稳定性**:插入或删除操作对迭代器的影响很小,除了操作的节点外,其他节点不受影响...

    C++中STL中的map用法详解.doc

    在遍历 map 中的数据时,我们可以使用 iterator,例如: ```cpp map, string&gt;::iterator iter; for(iter = mapStudent.begin(); iter != mapStudent.end(); iter++){ cout&lt;&lt;iter-&gt;first” ”&lt;&lt;iter-&gt;second; } ```...

    Map、Set、Iterator迭代详解

    ### Map接口详解 #### 1. Map接口概览 ...通过以上对`Map`、`Set`、`Iterator`以及Java集合框架的详细介绍,我们不仅可以了解到这些接口和类的基本概念和使用方法,还能深入理解它们在实际编程中的应用价值。

    map使用实例小结,VS2005运行通过

    在C++编程中,`std::map` 是一个...这些基本操作展示了如何在C++中使用`std::map`进行数据的插入、查询和遍历。在实际应用中,`map`通常用于高效地存储和检索数据,其内部使用红黑树实现,保证了O(log n)的时间复杂度。

    Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)

    一旦Action处理完数据,我们可以使用`&lt;s:iterator&gt;`标签在JSP中遍历并展示这些集合。例如: ```jsp &lt;s:iterator value="list"&gt; &lt;p&gt;&lt;s:property value="this"/&gt; &lt;/s:iterator&gt; &lt;s:iterator value="set"&gt; &lt;p&gt;...

    stl_map.rar_V2

    STL(Standard Template Library,标准...通过分析这些源代码,我们可以了解到如何在实际项目中有效利用STL Map,以及如何与其他C++工具和函数协同工作。这不仅有助于提高代码的效率,还能增强对C++编程语言的理解。

    Struts2 iterator 标签遍历 Map,List,数组(三十六)

    在实际应用中,`iterator`标签还支持其他属性,比如`var`用于定义一个局部变量来存储当前迭代的对象,`begin`和`end`用于指定遍历的起始和结束索引,以及`step`来设置每次迭代的步长。这些特性使得`iterator`标签在...

    C++使用iterator的例子

    在C++编程语言中,迭代器(Iterator)是一种设计模式,它提供了一种方法来遍历容器(如数组、向量、链表等)中的元素,而无需暴露其底层实现细节。迭代器充当了容器与代码之间的接口,使得程序员可以方便地访问容器...

    stl中map用法详解

    在STL中,`map`的数据结构通常实现为红黑树,这使得它具有O(log n)的时间复杂度,非常适合进行查找、插入和删除操作。 ### 1. `map`的基本使用 创建一个`map`非常简单,只需要声明一个`map`类型,并指定键和值的...

    标准模板库之map示例代码

    在C++编程语言中,标准模板库(Standard Template Library,STL)是极其重要的组成部分,它提供了一系列高效、泛型的容器、算法和迭代器。本文将深入探讨STL中的map容器,通过示例代码来解析其用法,并提供相关的...

    MAP的讲解利用

    - 使用`find()`函数查找key:`UDT_MAP_INT_CSTRING::iterator it = enumMap.find(nFindKey);`,返回的迭代器指向key对应的元素,若未找到则等于`end()`。 - `count()`函数检查key是否存在:`enumMap.count...

Global site tag (gtag.js) - Google Analytics