Vikram Ranabhatt
Vikram Ranabhatt

Reputation: 7630

Selecting Appropriate Data Structure

We are reading a book and we have to store every character of this book with it's count.

like : "This is to test" out should be: T4 H1 I2 S3 O1 E1

What will be the most appropriate data structure here and why? and what would be the logic here.

Upvotes: 0

Views: 735

Answers (4)

Alok Save
Alok Save

Reputation: 206646

The choice of selecting a data structure not only depends on what kind of data you want to store inside the data structure but more importantly on what kind of operations you want to perform on the data.

Have a look at this excellent chart which helps to decide when to use which STL container.

Ofcourse, In your case an std::array(C+0x) or std::vector, seems to be a good choice.

Upvotes: 1

Jerry Coffin
Jerry Coffin

Reputation: 490728

The appropriate data structure would be a std::vector (or, if you want something built-in, an array). If you're using C++0x, std::array would work nicely as well.

The logic is pretty simple -- read a character, (apparently convert to upper case), and increment the count for that item in the array/vector.

Upvotes: 1

gbjbaanb
gbjbaanb

Reputation: 52699

An array of ints would do fine here. Create an array, each index is a letter of the alphabet (you'll probably want to store upper and lower case separately for perf reasons when scanning the book). As you scan, increment the int at the array location for that letter. When you're done, print them all out.

Upvotes: 3

manku
manku

Reputation: 1278

Based on your description, you only need a simple hash of characters to their count. This is because you only have a limited set of characters that can occur in a book (even counting punctuation, accents and special characters). So a hash with a few hundred entries will suffice.

Upvotes: 1

Related Questions