multimap容器插入及访问数据

/*      multimap是C++STL容器之一,这个容器中所有元素均为pair,pair.first为键值是索引;second是实值;容器内的数据根据键值大小自动升序排序,multimap的键值允许重复。下面举一个例子说明怎样向multimap容器存入数据,然后访问这些数据并将其显示并保存到文件中。*/
//具体代码及注释如下:
#include<iostream> 
#include<fstream>
using namespace std; 
#include <string>
#include <map> //multimap和map#include都是map
#include<time.h> //时间头文件,随机数生成需要

int main()
{
    //声明一个multimap对象mm,索引值为int型,实值为string型
    multimap<int,string> mm;
    string str="A";
    int key=0,n=0; //key为索引值,n转化为string后与"A"组成实值
    srand((int)time(0)); //随机数种子
    for(int i=0;i<100;i++) 
    {
        key = rand() % (1000); //随机产生0-1000间的随机数作为key值
                               //由于是multimap,故允许key可能相同
        n = rand() % (100); //无实际意义,便于区分而已
        str = str.append(to_string(n));
        mm.insert(make_pair(key,str)); //将数据插入mm中
        str = "A";
    }
   ofstream ofs;
   int No=0; //加个序号,结果看起来更清楚
   ofs.open("C:\\Users\\Administrator\\Desktop\\1111.txt",ios::out|ios::trunc); 
              //提示:路径要准确
   for(multimap<int,string>::iterator it=mm.begin();it!=mm.end();it++)
     {  
       ofs << No << "...." << it->first << "...." << it->second << endl; 
              //将序号及multimap的索引、实值存入文件
       cout << "序号  " << No << "  first=  " << it->first << "  second  " << it->second << endl;
              //将序号及multimap的索引、实值显示到屏幕
        No++; }
    ofs.close();
    cout << "数据保存完毕。。。" << endl;
    system("pause");
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值