You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stdcxx.apache.org by se...@apache.org on 2006/03/07 02:19:00 UTC

svn commit: r383739 - in /incubator/stdcxx/trunk/examples/manual: b_search.cpp binary_search.cpp out/b_search.out out/binary_search.out

Author: sebor
Date: Mon Mar  6 17:18:58 2006
New Revision: 383739

URL: http://svn.apache.org/viewcvs?rev=383739&view=rev
Log:
2006-03-06  Martin Sebor  <se...@roguewave.com>

	* b_search.cpp: Uncomplicated tricky expression to deconfuse
	the XLC++ 8.0 optimizitor. Introduced convenience typedefs
	for better readability. Renamed...
	* binary_search.cpp: ...to this.
	* b_search.out: Renamed...
	* binary_search.out: ...to this.

Added:
    incubator/stdcxx/trunk/examples/manual/binary_search.cpp
      - copied, changed from r383661, incubator/stdcxx/trunk/examples/manual/b_search.cpp
    incubator/stdcxx/trunk/examples/manual/out/binary_search.out   (props changed)
      - copied unchanged from r383661, incubator/stdcxx/trunk/examples/manual/out/b_search.out
Removed:
    incubator/stdcxx/trunk/examples/manual/b_search.cpp
    incubator/stdcxx/trunk/examples/manual/out/b_search.out

Copied: incubator/stdcxx/trunk/examples/manual/binary_search.cpp (from r383661, incubator/stdcxx/trunk/examples/manual/b_search.cpp)
URL: http://svn.apache.org/viewcvs/incubator/stdcxx/trunk/examples/manual/binary_search.cpp?p2=incubator/stdcxx/trunk/examples/manual/binary_search.cpp&p1=incubator/stdcxx/trunk/examples/manual/b_search.cpp&r1=383661&r2=383739&rev=383739&view=diff
==============================================================================
--- incubator/stdcxx/trunk/examples/manual/b_search.cpp (original)
+++ incubator/stdcxx/trunk/examples/manual/binary_search.cpp Mon Mar  6 17:18:58 2006
@@ -1,29 +1,35 @@
 /**************************************************************************
  *
- * b_search.cpp - Example program of binary search. 
+ * binary_search.cpp - Example program of binary search. 
  *
- * $Id: //stdlib/dev/examples/stdlib/manual/b_search.cpp#12 $
+ * $Id$
  *
  ***************************************************************************
  *
- * Copyright (c) 1994-2005 Quovadx,  Inc., acting through its  Rogue Wave
- * Software division. Licensed under the Apache License, Version 2.0 (the
- * "License");  you may  not use this file except  in compliance with the
- * License.    You    may   obtain   a   copy   of    the   License    at
- * http://www.apache.org/licenses/LICENSE-2.0.    Unless   required    by
- * applicable law  or agreed to  in writing,  software  distributed under
- * the License is distributed on an "AS IS" BASIS,  WITHOUT WARRANTIES OR
- * CONDITIONS OF  ANY KIND, either  express or implied.  See  the License
- * for the specific language governing permissions  and limitations under
- * the License.
+ * Copyright 2005-2006 The Apache Software Foundation or its licensors,
+ * as applicable.
+ *
+ * Copyright 1994-2006 Rogue Wave Software.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  * 
  **************************************************************************/
 
 #include <algorithm>    // for binary_search(), copy(), sort()
 #include <deque>        // for deque
 #include <functional>   // for less
-#include <iostream>     // for cout, endl
-#include <iterator>     // for ostream_iterator
+#include <iostream>     // for cout
+#include <iterator>     // for ostream_iterator, char_traits
 
 #include <examples.h>
 
@@ -31,32 +37,36 @@
 int main ()
 {
     // Typedefs for convenience.
-    typedef std::deque<short, std::allocator<short> > Deque;
-
-    typedef std::ostream_iterator<Deque::value_type,
-                                  char,
-                                  std::char_traits<char> > os_iter;
+    typedef short                                      Value;
+    typedef std::deque<Value, std::allocator<Value> >  Deque;
+    typedef std::char_traits<char>                     Traits;
+    typedef std::ostream_iterator<Value, char, Traits> Iterator;
 
-    const Deque::value_type arr[] = { 0, 1, 2, 2, 3, 4, 2, 2, 6, 7 };
+    const Value arr[] = { 0, 1, 2, 2, 3, 4, 2, 2, 6, 7 };
 
     // Populate and sort the container.
     Deque d (arr + 0, arr + sizeof arr / sizeof *arr);
     std::sort (d.begin (), d.end ());
 
+    // Arbitrary values to search for.
+    const Value val_1 = 3;
+    const Value val_2 = 11;
+
     // Try binary_search variants.
-    bool b1 = std::binary_search (d.begin (), d.end (), 3);
-    bool b2 = std::binary_search (d.begin (), d.end (), 11,
-                                  std::less<int>());
+    const bool found_1 = std::binary_search (d.begin (), d.end (), val_1);
+    const bool found_2 = std::binary_search (d.begin (), d.end (), val_2,
+                                             std::less<Value>());
 
-    // Output results.
+    // Output the sorted sequence.
     std::cout << "Container contents: ";
-    std::copy (d.begin (), d.end (), os_iter (std::cout, " "));
+    std::copy (d.begin (), d.end (), Iterator (std::cout, " "));
 
-    std::cout << "\nThe number 3 was " 
-              << ("NOT found" + b1 * 4);
+    // Output the results of the algorithms.
+    std::cout << "\nThe number " << val_1 << " was "
+              << (found_1 ? "" : "NOT ") <<  "found";
 
-    std::cout << "\nThe number 11 was "
-              << ("NOT found" + b2 * 4) << std::endl;
+    std::cout << "\nThe number " << val_2 << " was "
+              << (found_2 ? "" : "NOT ") << "found\n";
 
     return 0;
 }

Propchange: incubator/stdcxx/trunk/examples/manual/out/binary_search.out
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/stdcxx/trunk/examples/manual/out/binary_search.out
------------------------------------------------------------------------------
    svn:keywords = Id