$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: chintanraoh_at_[hidden]
Date: 2008-08-13 11:41:22
Author: chintanraoh
Date: 2008-08-13 11:41:22 EDT (Wed, 13 Aug 2008)
New Revision: 48125
URL: http://svn.boost.org/trac/boost/changeset/48125
Log:
Added prefix search to example
Text files modified: 
   sandbox/SOC/2008/digital_searching/dsearch/libs/dsearch/example/classroom.cpp |    39 ++++++++++++++++++++++++++++++++++++--- 
   1 files changed, 36 insertions(+), 3 deletions(-)
Modified: sandbox/SOC/2008/digital_searching/dsearch/libs/dsearch/example/classroom.cpp
==============================================================================
--- sandbox/SOC/2008/digital_searching/dsearch/libs/dsearch/example/classroom.cpp	(original)
+++ sandbox/SOC/2008/digital_searching/dsearch/libs/dsearch/example/classroom.cpp	2008-08-13 11:41:22 EDT (Wed, 13 Aug 2008)
@@ -1,16 +1,27 @@
 #include<boost/dsearch/patricia.hpp>
 #include<boost/dsearch/pat_key_traits.hpp>
 #include<iostream>
+#include<algorithm>
 #include<string>
 
 using boost::dsearch::patricia;
 using boost::dsearch::pat_string_traits;
 
+template<class T>
+void print_range(T begin,T end)
+{
+	for(T it=begin; it!=end; ++it)
+		std::cout<<(*it).first<<" Roll No: "<<(*it).second<<std::endl;
+	std::cout<<std::endl;
+}
+
 int main(int argc, char** argv)
 {
         typedef patricia<std::string,std::string,pat_string_traits>   pat_type;
         pat_type classroom;
         typedef pat_type::iterator iterator;
+	std::pair<iterator,iterator> prefix_pair;
+	iterator found_it;
 
         classroom [ "Anirudh Santhiar" ] = "05co06";
         classroom [ "Anup C Shan" ] = "05co11";
@@ -18,10 +29,32 @@
         classroom [ "Bharath Ravi" ] = "05co48";
         classroom [ "Bala Subramanyam" ] = "05co18";
         classroom [ "S Devika Nair" ] = "05co54";
-	classroom [ "Mahima A S"] = "05co35";
+	classroom [ "S A Mahima"] = "05co35";
+
+	std::cout << "all of them" <<std::endl;
+	print_range ( classroom.begin() , classroom.end() );
+
+	prefix_pair=classroom.prefix_range("A");
+	std::cout << "names which begin with A" <<std::endl;
+	print_range ( prefix_pair.first , prefix_pair.second );
+
+	prefix_pair=classroom.prefix_range("B");
+	std::cout << "names which begin with B" <<std::endl;
+	print_range ( prefix_pair.first , prefix_pair.second );
+
+	prefix_pair=classroom.prefix_range("S ");
+	std::cout << "names which begin with 'S '"<<std::endl;
+	print_range ( prefix_pair.first , prefix_pair.second );
+
+	classroom.erase ( "Bala Subramanyam" );
         
-	for(iterator it=classroom.begin(); it!=classroom.end(); ++it)
-		std::cout<<(*it).first<<"-->"<<(*it).second<<std::endl;
+	classroom.insert ( std::make_pair(std::string("Chimpanzee" ),std::string("05co19" ) ) );
         
+	found_it=classroom.find("Chimpanzee");
+	std::cout<<(*found_it).first<<" Roll No: "<<(*found_it).second<<std::endl<<std::endl;	
+
+	std::cout << "all of them" <<std::endl;
+	print_range ( classroom.begin() , classroom.end() );
+
         return 0;
 }