1. 程式人生 > >用map巢狀vector實現multimap功能

用map巢狀vector實現multimap功能

最近迷上了泛型程式設計,在一個專案中需要用到一個變長對映,於是用map+vector+結構體實現了multimap的基本功能。

特改個demo存檔。

//---------------------------------------------------------------------------
#include <map>
#include<vector>
#include <string>
#include <iostream>
using namespace std;
//---------------------------------------------------------------------------
typedef struct test
{
    char nn[8];
    int xx;
    int yy;
}  Mystruct;

typedef vector< Mystruct>  Myvctor;
typedef map<int,Myvctor>  Mymap;

int main(int argc, char *argv[])
{
    Mystruct st1[2]= {{"aa",12,34},{"bb",21,43}};
    Mystruct st2[3]= {{"AA",11,22},{"BB",33,44},{"CC",55,66}};
    Myvctor myvctor(st1,st1+2);  //直接把陣列初始化進來
    Mymap mymap;
    mymap.insert(pair<int,Myvctor>(1,myvctor));
    myvctor.clear();
    for(int i=0; i<sizeof(st2)/sizeof(st2[0]); i++)
        myvctor.push_back(st2[i]);
    mymap.insert(pair<int,Myvctor>(3,myvctor));
    cout<<"*******  遍 歷  *******" <<endl;    //遍歷
    cout<<"ID :nn  xx  yy" <<endl;
    cout<<"==================================" <<endl;
    Mymap::iterator iter;
    for(iter = mymap.begin(); iter != mymap.end(); iter++)
    {
        Myvctor::iterator it;
        for(it = iter->second.begin(); it != iter->second.end(); it++)
        {
            cout<<iter->first <<" : "<< (*it).nn<<", "<<(*it).xx<<", "<<(*it).yy<<", "<<endl;
        }
        cout<<"==================================" <<endl;
    }
    cout<<"\n*******  查詢= 3  *********" <<endl;         //查詢
    iter=  mymap.find(3);
    if(iter != mymap.end())
    {
        Myvctor::iterator it;
        for(it = iter->second.begin(); it != iter->second.end(); it++)
        {
            cout<<iter->first <<" : "<< (*it).nn<<", "<<(*it).xx<<", "<<(*it).yy<<", "<<endl;
        }
        cout<<"=====================" <<endl;
    }
    system("pause");
    return 0;
}
//---------------------------------------------------------------------------

相關推薦

mapvector實現multimap功能

最近迷上了泛型程式設計,在一個專案中需要用到一個變長對映,於是用map+vector+結構體實現了multimap的基本功能。特改個demo存檔。//---------------------------------------------------------------

微信小程式:web-viewH5實現微信支付功能解決方案及填坑

最近一個多月加班比較嚴重,偶爾休息一天也是在補睡眠+陪家人,比較長時間沒有來進行總結記錄了。今天不加班,開始為這段時間做的東西進行下經驗總結。 這段時間因為公司需要,接觸了一些.Net前後臺開發,慢慢了解了一些WCF、H5站點、WebService、Soap、Linq等,也

repeaterCheckBox+CheckBoxList實現樹型選擇選單

頁面:<HTML> <body>  <form id="Form1" runat="server">   <asp:repeater id="parentRepeater" runat="server">    <itemtemplate>   

vue2.0路由實現豆瓣電影分頁功能(附加豆瓣web-app)

前言 最近練習Vue,看到官方文件中的巢狀路由, 不做不知道,實在是太坑了,網上資料demo少之又少,然後自己就做了一個demo,用了vue2.0巢狀路由實現豆瓣電影分頁功能,供大家學習學習,寫得不好望見諒。 demo截圖: douban.gif Demo

關於網站調在線翻譯api實現翻譯功能

fun tran ring1 uda api napi {} log class 在做一些網站的時候偶爾會遇到需要中英文翻譯的部分,也許是提供用戶在線翻譯的功能,也可能是把用戶輸入的一整段文字進行翻譯。小龍最近就遇到這麽一個事兒,對接中外兩方用戶的溝通,為了對語言不那麽順暢

關於mapmapmaplist(轉載https://blog.csdn.net/mustbehard/article/details/17310043)

import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set;

Google protobuf訊息c++實現

protobuf3.1.0的安裝見:https://blog.csdn.net/mircosheng/article/details/70141704 安裝完protobuf後,新建.proto檔案,本文命名為lm.helloworld. proto 在網路通訊系統中,protobuf能夠提升通

webview中html實現精準定位(百度地圖、高德地圖、騰訊地圖、H5原生定位)js對比

最近在實現一個功能,就是在安卓手機和蘋果手機嵌入html程式碼,實現精準定位,我為此對比幾種定位的方法。我要的是精準定位,就是誤差在100米左右的功能,類似與外賣app那種定位精確度 1. 首先是原生h5定位 if(browser.versions.an

RecyclerViewViewPager實現淘寶搜狐主頁廣告輪播圖

RecyclerView巢狀ViewPager實現原理: RecyclerView巢狀ViewPager實際上就是RecyclerView複雜佈局的實現,給其中一個item設定為ViewPager來實現廣告輪播圖。既然知道原理 那麼

MySQL的事務實現

一、問題起源 在MySQL的官方文件中有明確的說明不支援巢狀事務: Transactions cannot be nested. This is a consequence of the implicit commit performed for any current transaction when

vector的使用

形如vector<vector<int>>怎麼初始化: 輸入m,n m為vector<int>個數 n每個vector中的元素 #include<iostr

shell通過迴圈實現日期遞增輸出

for i in 01 02 03 04 05 06 07 08 09 10 11 12; do for j in 0 1 2 3 4 5 6; do DATE=$(date +"%Y%m%d" -d "2016${i}28 +${j}day"); echo $

Android 混排效果之 ScrollView RecyclerView gridview 實現listview gridview 效果

RecyclerView 出現以後 很受大家歡迎 漂亮流暢的列表 簡單的操作 可以幫我們完成很多的列表 但是有一種listview 巢狀gridview 的效果 目前還是需要巢狀才能完成 現在就簡單說一下我的思路 本人的需求是例如手機淘寶頁 本人使用老套的實現模

java多層map案例

這是做專案事service層的一個方法,TmCisDataItemDef是一個物件,tmCisDataItemDefDao.queryForList()方法從資料庫中取出所有TmCisDataItem

c++ map佇列(佇列結構體指標)ok

map中巢狀佇列,佇列中是結構體,有一個問題,結構體中的值不更新#include<iostream>#include<queue>#include<map>//#in

Android scrollview中listview實現listview的下拉重新整理上拉載入更多

我們都知道在Android中scrollview和listview都能滑動,如果scrollview巢狀listview會出現一些問題,比如listview不能正常顯示item...但是在一些專案中,一些頁面內容比較多,需要在外面放一個scrollview,裡面還會巢狀li

SwipeRefreshLayoutRecyclerView實現上下拉重新整理

在這裡特別感謝大神,這裡附上大神帖子:https://github.com/1030310877/LoadMoreRecyclerView SwipeRefreshLayout巢狀RecyclerView實現上下拉重新整理。SwipeRedreshLayout是Android自帶的一個下拉重

使用迴圈實現正方形列印(Square of Asterisks)

使用兩層巢狀迴圈,實現行列迴圈列印輸出,形成簡單圖案。 程式碼如下: //JHTP Exercise 4.29:Square of Asterisks //by [email protec

C++vector(二維矩陣)的初始化

初始化一個巢狀的char型巢狀vector,已知C++11允許vector用花括號{}的初始方式,vector元素以逗號隔開,例如: vector<char>> board = {'X', 'X', 'X'}; 推廣之,易知巢狀vector

Android ViewPager實現連貫雙滑動

ViewPager巢狀ViewPager後,滑動事件沒法在子ViewPager裡面響應。 解決辦法是自定義子ViewPager。 通知他的父ViewPager現在進行的是本控制元件的操作,不要對我的操作進行干擾 getParent().requestDisallow