How to delete a value from the nested structure?

Hi Friends!
I have a nested structure such as
multimap<int, map<int ,set<int>>> FinalMul
It contains sample values
1=>4--->1
6=>4--->1
6=>9--->4
11=>4--->1
11=>5--->1   4
11=>9--->4
12=>2--->1   4   5
I want to delete the value 4 from the second and third column,
So, it looks like
1=>
6=>
6=>9--->
11=>
11=>5--->1 
11=>9--->
12=>2--->1  5
after deleting 4, if I have a key(first) (1, 6, 11) and secondkey (second)(6=>9--->,  11=>9--->) with no values, then delete them also.
Finally it looks like
11=>5--->1 
12=>2--->1  5
Can anyone help me how to solve it?
I just tried something;
set<int> tempV;
map<int, set<int>> tempM;
multimap<int, map<int, set<int>>> FinalMul
tempV.insert(1);
tempM.insert(make_pair(4, tempV));
FinalMul.insert(make_pair(1, tempM));
tempV.clear();
tempM.clear();
tempV.insert(1);
tempM.insert(make_pair(4, tempV));
FinalMul.insert(make_pair(6, tempM));
tempV.clear();
tempM.clear();
tempV.insert(4);
tempM.insert(make_pair(9, tempV));
FinalMul.insert(make_pair(6, tempM));
tempV.clear();
tempM.clear();
tempV.insert(1);
tempM.insert(make_pair(4, tempV));
FinalMul.insert(make_pair(11, tempM));
tempV.clear();
tempM.clear();
tempV.insert(1); tempV.insert(4);
tempM.insert(make_pair(5, tempV));
FinalMul.insert(make_pair(11, tempM));
tempV.clear();
tempM.clear();
tempV.insert(4);
tempM.insert(make_pair(9, tempV));
FinalMul.insert(make_pair(11, tempM));
tempV.clear();
tempM.clear();
tempV.insert(1); tempV.insert(4); tempV.insert(5);
tempM.insert(make_pair(2, tempV));
FinalMul.insert(make_pair(12, tempM));

Check this attempt:
typedef
set<int>
SET;
typedef
map<int,
SET>
MAP;
typedef
multimap<int,
MAP>
MULTIMAP;
// remove '4' from second column
for_each( FinalMul.begin(), FinalMul.end(),
[]( MULTIMAP::value_type
& mmv )
MAP & m =
mmv.second;
m.erase( 4 );
// remove '4' from third column and remove empty entries
for_each( FinalMul.begin(), FinalMul.end(),
[]( MULTIMAP::value_type
& mmv )
MAP & m =
mmv.second;
for(
auto i = m.begin(); i != m.end(); )
SET & s = i->second;
s.erase( 4 );
if( s.empty() )
i = m.erase( i );
else
++i;
// remove empty entries
for(
auto i = FinalMul.begin(); i != FinalMul.end(); )
MAP & m = i->second;
if( m.empty() )
i = FinalMul.erase( i );
else
++i;

Similar Messages

  • How to get maximal value from the data/class for show in Map legend

    I make WAD report that using Map Web Item.
    I devide to four (4) classes for legend (Generate_Breaks).
    I want to change default value for the class by javascript and for this,
    I need to get maximal value from the class.
    How to get maximal value from the data/class.
    please give me solution for my problem.
    Many Thx
    Eddy Utomo

    use this to get the following End_date
    <?following-sibling::../END_DATE?>
    Try this
    <?for-each:/ROOT/ROW?>
    ==================
    Current StartDate <?START_DATE?>
    Current End Date <?END_DATE?>
    Next Start Date <?following-sibling::ROW/END_DATE?>
    Previous End Date <?preceding-sibling::ROW[1]/END_DATE?>
    ================
    <?end for-each?>
    o/p
    ==================
    Current StartDate 01-01-1980
    Current End Date 01-01-1988
    Next Start Date 01-01-1990
    Previous End Date
    ================
    ==================
    Current StartDate 01-01-1988
    Current End Date 01-01-1990
    Next Start Date 01-01-2005
    Previous End Date 01-01-1988
    ================
    ==================
    Current StartDate 01-01-2000
    Current End Date 01-01-2005
    Next Start Date
    Previous End Date 01

  • How to select multiple values from the parameters in BI Publisher report

    How to select multiple values from the parameter drop down in BI Publisher, and how to handle this mulitple values from the report sql...

    Hi kishore,
    I have used all the steps as you mentioned in your previous reply....including checking Mulitple Selection Check Box..
    Iam able to get the results when I am selecting one value..
    and also I am able to handle multiple values the in the query by using IN :Parameter, but seems when we select more than one value from the parameter drop down i think the Bi Publisher is sending the values in concatenated form something ilke
    ex: "'ACCOUNT','HR','SALES'" ,and when trying to display the parameters values in the output, its throwing the error as 'missing right paranthesis' ....on the whole do you have any solution which would handle
    1.Single selection.
    2.Multiple selection.
    3.'ALL' Values.
    4.Separating the concatenated string into individual strings and dispaly them on the output of the report..etc..in case of Mulitple selection.
    Ex:
    Concatenated String from BI Publisher:"'ACCOUNT','HR','SALES'"
    Expected Output on the report:ACCOUNT,HR,SALES
    reply to this would be much appreciated....
    thanks,
    manoj

  • How to select multiple values from the Parameters in the concurrent program

    How to select multiple values from the Parameters defined in the concurrent program...and i believe multiple selection is not a direct feature of EBS, but is there any workaround solution to acheive mulitple selection?

    I think there's no way to do that using standard feature.
    Some workaround I use :
    1. If the number of selections are fixed, you could use multiple parameters for the same valueset. For example :
    Selection1 : <choose first selection>
    Selection2: <choose 2nd selection>
    ..etc.
    If you don't use it then leave it empty.
    2. Use text varchar valueset and enter it manually and separate by comma (or other value) , eg : selection1,selection2,selection3....etc.

  • How to delete a column from the table control in module pool?

    Hi,
      can any one please tell How to delete a column from the table control in module pool?
    thanks in advance
    warm regards
    HareeshKumar N

    hi hareesh,
    I think it is better to hide it.
    How to hide: You can check this link
    Dynamic Hide column in table control

  • How to delete a list from the reading list

    How to delete a list from the reading list

    I assume that you mean in Safari, in which case just swipe across it's name in reading list and you should get a Delete button appear on it.

  • How can delete my account from the adobe cloud

    how can delete my account from the adobe cloud
    I would like to unregister myself from the service

    Hi mehranr34543413,
    Please Contact Customer Care. A Customer Care agent can help you with that request.
    Best,
    Sara

  • How to get multiple values from the list

    I've a list of an item which I queried it from the database. I also created a button that will takes a selected items from the list when it was clicked. I used javabean to get the data from database.
    <%     // clicked on Select District Button
    Vector vselectedDistrict = new Vector();
    Vector vdistrictID = new Vector();
    String tmpSelectDistrict = "";
    tmpSelectDistrict = request.getParameter("bSelectDistrict");
    if(tmpSelectDistrict != null)
         // get multiple values from the list
         String[] selectedDistrict = request.getParameterValues("usrTDistrict");
         vselectedDistrict.clear();
         vdistrictID.clear();
         if((selectedDistrict != null) && (selectedDistrict.length != 0))
                             for(int i=0;i<selectedDistrict.length;i++)
                   vselectedDistrict.addElement(selectedDistrict);           
              vdistrictID = dbaseInfo.getcurrentDistrictID(nstate,vselectedDistrict);
              for(int i=0;i<vdistrictID.size();i++)
                   out.println("district = " + selectedDistrict[i]);                         out.println("district ID= " + vdistrictID.get(i).toString());
    %>
    // get vdistrict from the database here......
    <select name="usrTDistrict" size="5" multiple>
    <%     for(int i = 0; i< vdistrict.size(); i++)
    %>
         <option value="<%=vdistrict.get(i).toString()%>"><%=vdistrict.get(i).toString()%></option>
    <%
    %>          
    </select>
    <input type="submit" name="bSelectDistrict" value="Select District">
    Lets say the item that i selected from the list is 'Xplace' and I clicked on the Select District button,
    what I got is this error message:
    org.apache.jasper.JasperException: Unable to convert string 'Xplace' to class java.util.Vector for attribute usrTDistrict: java.lang.IllegalArgumentException: Property Editor not registered with the PropertyEditorManager
    So where is going wrong and what the message means?. Any help very much appreciated. Thanks

    These are just guesses that might hopefully steer you in directions you haven't looked in yet.
    I presume you used triangle brackets (< >) to avoid having the Jive Forum think it was the "italics" tag?
    Are you certain this: dbaseInfo.getcurrentDistrictID(nstate,vselectedDistrict);
    expects a Vector as its second parameter? And returns a Vector?
    I don't believe you've shown how you use the javabean, or its code? Perhaps it should be rewritten to accept an array of strings instead of a Vector?

  • How to get a value from the previous element (XSLT/XPATH gurus ahoy!)

    Hi All,
    I am building an RTF template for a "letter of reference"-report. Sometimes there are several rows in the data, that need to be printed as one. This is due to consecutive temporary contracts, which will be printed out as one period of service.
    Here's a simplified data example to illustrate the problem.
    <ROW>
    <START_DATE>01-01-1980</START_DATE>
    <END_DATE>01-01-1988</END_DATE>
    </ROW>
    <ROW>
    <START_DATE>01-01-1988</START_DATE>
    <END_DATE>01-01-1990</END_DATE>
    </ROW>
    <ROW>
    <START_DATE>01-01-2000</START_DATE>
    <END_DATE>01-01-2005</END_DATE>
    </ROW>
    With the data above, I should print two lines:
    01-01-1980 - 01-01-1990
    01-01-2000 - 01-01-2005
    I need to compare START_DATE of an element (except for the first one) with the END_DATE of the previous element, to find out whether to print the END_DATE for that element or not. How can I get that value from the previous element?
    Thanks & Regards, Matilda

    use this to get the following End_date
    <?following-sibling::../END_DATE?>
    Try this
    <?for-each:/ROOT/ROW?>
    ==================
    Current StartDate <?START_DATE?>
    Current End Date <?END_DATE?>
    Next Start Date <?following-sibling::ROW/END_DATE?>
    Previous End Date <?preceding-sibling::ROW[1]/END_DATE?>
    ================
    <?end for-each?>
    o/p
    ==================
    Current StartDate 01-01-1980
    Current End Date 01-01-1988
    Next Start Date 01-01-1990
    Previous End Date
    ================
    ==================
    Current StartDate 01-01-1988
    Current End Date 01-01-1990
    Next Start Date 01-01-2005
    Previous End Date 01-01-1988
    ================
    ==================
    Current StartDate 01-01-2000
    Current End Date 01-01-2005
    Next Start Date
    Previous End Date 01

  • How to Get Parameter Values from the URL ?

    Hi,
    I have built a calendar called cal_test. I am calling this calendar with this URL:
    http://.../pls/.../xyz.cal_test.show?p_arg_names=p_sc_id&p_arg_values=2&p_arg_names=_start_date&p_arg_values=FEB-2002
    In the 'Additional PL/SQL Code' tab of cal_test, I need to call a procedure which requires me to pass in as parameters the values of p_sc_id and startdate embedded in the URL named above. How can I retrieve these 2 values from the URL ? Any advice will be appreicated !
    Dorothy

    Hi Daniel
    The following thread might help;
    if not, you could try posting the question in Application Server » Web Dynpro Java
    Thanks
    Kenny

  • How to get updated values from the loops while they are running

    Hello,
            I am having difficulty solving a very basic problem, how to access the updated values from the 'FOR loop' while its running?  Basically, the VI  I am currently working on calls two sub VIs. Each sub VI has a for loop, and both VIs may or may not run for same number of iterations. My goal is to read the values at each terminal inside the loop of both sub VIs, in the Main VI. I tried to achieve it using Global Variables, but in main VI it displays only the last iteration value from both sub VIs. Could anyone please tell me whrere am I going wrong? Is there any other/better way to achieve this.
    I appreciate any input on this issue.  
    Kudos are (always) welcome for the good post. :-)
    Solved!
    Go to Solution.

    Dennis,
                In attached VI, I can see the values changing in the sub VI from the main VI with the numeric indicator whose reference is passed on to the sub VI. Now if I wanted to store or use those values how do I do that? I tried to chnge the indicator to control and read from it (in the attached VI) , but the the indicator updates only once. Tried to create a property node and read the Value from it and it didn't work either.
    Thanks in Advance!
    -Nilesh
    Kudos are (always) welcome for the good post. :-)
    Attachments:
    main-1.vi ‏8 KB
    sub-1.vi ‏9 KB

  • How to delete SMS text from the hard drive of a IPhone 3gs

    How do I delete SMS text from the hard drive of a iPhone 3GS

    If you want to delete the messages from within the text app, swipe over the name or number of the sender and hit delete.
    If you are afraid that someone will be able to restore them by ckecking your HD, you will have to set up the phone "as new device" or choose "erase all content and Settings" in Settings/General/Reset. But this willerase the whole phone, not only your text messages.
    How to set up your iPhone or iPod touch as a new device
    Message was edited by: Ingo2711

  • How to delete datasource registration from the administration tool?

    Hello,
    How could I delete datasource registration from the administration tool?
    Thank you
    Krisztian

    Hi Krisztian,
    You can not delete the datasource from the admin tool, but can do so
    from the iPlanet registry -
    - invoke kregedit
    - Go to Software\iPlanet, Application Server, 6.0, DataSource
    - Select the datasource you want to delete, Choose Edit-Delete from the menu
    to delete the datasource.
    Regards,
    Jitin Sood.
    "Krisztian Maraczi" <[email protected]> wrote in message
    news:9kdhb2$[email protected]..
    Hello,
    How could I delete datasource registration from the administration tool?
    Thank you
    Krisztian

  • Getting Error while deleting a field from the 'Z' Structure

    Hi All,
    I have created a 'z' structure in which i have 5 fields, now i want to delete one field from the structure, but it is giving me error like Invalid Change.
    Its a structure so i cant activate and adjust as we do for Tables.(se14)
    So pls help me out asap.
    thanks & Regards,
    Dhruv Shah

    Thanks for Quick Reply.
    I have not used this field in any FM/ Report.
    I have tried log off and then log on. but it make no difference.
    Now the Other scenario is that i want to change the datatype of this field to TEXT25.
    But it is also not allowing me to change because currently datatype is TEXT20.
    So now how can i change the length from 20 to 25.
    Regards,
    Dhruv Shah

  • How to get multiple values from the db using select

    hi all,
    i am using oracle 9i database
    i created a procedure
    create or replace procedure sample_proce
    as
    to_i varchar2(50)
    begin
    select to_id into to_i from sample where flag in('y');
    dbms_output.put_line('hai'|| to_i);
    end;
    when i executed this procedure the following error occurred.
    error at line 5 fetching too many rows.
    but when i execute the select query alone i can able to view all the rows.
    how to resolve it

    i used the following procedure
    create or replace procedure sample_proc
    as
    begin
    for s in(select to_id from sample where flag='y')
    loop
    dbms_output.put_line(s.to_id);
    end loop.
    end;
    it is executed fine. i can able to fetch all the rows.
    how to pass all these values into the another procedure.
    we usually pass only one value into another procedure, i do no how to pass all the values . please help me.
    Thank u.

Maybe you are looking for