Sponsored Content
Top Forums Programming Finding items that occur more than once in a vector Post 302520996 by LMHmedchem on Tuesday 10th of May 2011 12:38:48 AM
Old 05-10-2011
Quote:
Originally Posted by Loic Domaigne
I guess, my previous example shows how to do it:
- it creates an empty map
- it fills the map step by step as the number are entered (until a negative number is given for stop).
- for the entered element, it adds 1 to the count.

Or am I missing something?

Loïc
I was thinking that I would see separate assignments, like a 2D array. The ++list[x] just didn't catch my eye the right way when I was expecting something like list.insert(x,y);.

This is what I ended up with,
Code:
void loadMap(int lrdr, int k1, int k2, std::map<int,int> &buildMap);
std::map<int,int> map1;

lrdr = 1; k1 = 17; k2 = 21;
loadMap(lrdr, k1, k2, map1); // pass empty map to loading function

 std::vector<int> unique, nonUnique; // final vectors

// parse map into final vectors by count
for(std::map<int,int>::iterator it=map1.begin(); it!=map1.end(); ++it) {
   if (it->second == 1) {
      unique.push_back(it->first);
   } else {
      nonUnique.push_back(it->first);
   }
}

// loading function, most of this isn't relevant
void loadMap(int lrdr, int k1, int k2, std::map<int,int> &buildMap) {
   int tmpInt;
   BondKey key(lrdr, k1, k2);
   BondMap::iterator iter = order_map.find(key);
   if (iter != order_map.end()) {
      BondInfo& bond_info = (*iter).second;
      for (int i=0; i<bond_info.m_nums.size(); i++) {
         tmpInt = ( (int) bond_info.m_nums[i].m_numI );
         buildMap[tmpInt]++;
      }
   }
}

This gets me my unique and nonunique vectors and is quite a bit more efficient than my double loop. It also lets me easily handle doing different things for 2 occurrences, 3 occurrences, etc.

I guess I should be passing more or less everything but the map by const reference, since the map is the only thing that gets changed, so I should clean up a bit I think.

Thanks for all the help.

LMHmedchem

Last edited by LMHmedchem; 05-10-2011 at 02:04 PM..
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Why SIGKILL will occur?

Hi Gurus, I am executing my Datastage jobs on UNIX operating System. While running the jobs i am getting the following error: main_program: Unexpected termination by Unix signal 9(SIGKILL) Can any one please let me know what are the possible situations where this SIGKILL will arrise? ... (9 Replies)
Discussion started by: choppas
9 Replies

2. Shell Programming and Scripting

how many times a word occur in afile

i want a shell script program for how many times a word occur in a file. i need not the line number but i want the counts of the particular word for eg:- hai how r u.. i am from andhra pradesh.. i am from tenali.i need this answer.i need it urgently.. i hope u will answer this ... ... (9 Replies)
Discussion started by: madhu.it
9 Replies

3. Shell Programming and Scripting

awk between items including items

OS=HP-UX ksh The following works, except I want to include the <start> and <end> in the output. awk -F '<start>' 'BEGIN{RS="<end>"; OFS="\n"; ORS=""} {print $2} somefile.log' The following work in bash but not in ksh sed -n '/^<start>/,/^<end>/{/LABEL$/!p}' somefile.log (4 Replies)
Discussion started by: Ikon
4 Replies

4. Shell Programming and Scripting

finding missing items in file

I have a need to compare 2 files, then print results to file. Need to find items from file2 that are not found in file 1. thanks in advance! example: file 1: abcde=12 fffff=6 bbbb=35 file2: abcde=12 fffff=6 bbbb=35 ccccc=10 kkkkk=45 (8 Replies)
Discussion started by: discostu
8 Replies

5. Shell Programming and Scripting

To find number of char occur

To find out number of "|" symbol is available in file: Input: a|b|c|d|z Ouput: 4 I am using below set of commands,It is working... Anybody have anyother solution using sed / awk. cnt=`wc -c <1.txt` cnt1=`tr -d "|" <1.txt >c.dat` cnt2=`wc -c <c.dat` outp=`expr $cnt... (19 Replies)
Discussion started by: Jairaj
19 Replies

6. UNIX for Dummies Questions & Answers

C shell loop problem occur

Hi all, i create 2 file Config path1 5 group1 path2 6 group2 path3 10 group1 path4 15 group2 Confine group1 andrew group2 alan In my C shell script i write like this: set line_array = (`cat $app_dir/config`) set line_array_2 =... (0 Replies)
Discussion started by: proghack
0 Replies

7. Shell Programming and Scripting

Print lines where variables occur more than once using grep

Hello, I want to only print lines where variables occur more than once using grep. For eg: Input: $this is a comment int a,b,c,b; int b,c; int d,e; int f,g,f; x=y+5; For the above input, the output would be int a,b,c,b; int f,g,f; I have done grep... (3 Replies)
Discussion started by: prasanna1157
3 Replies

8. Shell Programming and Scripting

Help with Perl script that can check a URL and notifiy when changes occur

I'm a scripting newbie and I'm trying to learn. No better way than being assigned a project. So basically, I'm trying to come up with a script that can periodically check a URL and then notify when changes occur to the file. So what I'm thinking is that I need to devise a PERL script that... (3 Replies)
Discussion started by: adam1mc
3 Replies

9. Cybersecurity

Where does Ciphering & Encryption occur?

Hello everyone. Upon reading the recent news about the NSA paying RSA to use a faulty cipher suite for it's default, it got me thinking... During a connection say for SSL, what is it that "knows" the rules for ciphers? Are these rules stored on the NIC? can they be edited, changed or appended? ... (3 Replies)
Discussion started by: Lost in Cyberia
3 Replies
set_color(1)							       fish							      set_color(1)

NAME
set_color - set_color - set the terminal color set_color - set the terminal color Synopsis set_color [-v --version] [-h --help] [-b --background COLOR] [COLOR] Description Change the foreground and/or background color of the terminal. COLOR is one of black, red, green, brown, yellow, blue, magenta, purple, cyan, white and normal. o -b, --background Set the background color o -c, --print-colors Prints a list of all valid color names o -h, --help Display help message and exit o -o, --bold Set bold or extra bright mode o -u, --underline Set underlined mode o -v, --version Display version and exit Calling set_color normal will set the terminal color to whatever is the default color of the terminal. Some terminals use the --bold escape sequence to switch to a brighter color set. On such terminals, set_color white will result in a grey font color, while set_color --bold white will result in a white font color. Not all terminal emulators support all these features. This is not a bug in set_color but a missing feature in the terminal emulator. set_color uses the terminfo database to look up how to change terminal colors on whatever terminal is in use. Some systems have old and incomplete terminfo databases, and may lack color information for terminals that support it. Download and install the latest version of ncurses and recompile fish against it in order to fix this issue. Version 1.23.1 Sun Jan 8 2012 set_color(1)
All times are GMT -4. The time now is 10:11 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy