|
Boost-Commit : |
From: ockham_at_[hidden]
Date: 2008-08-19 09:00:34
Author: bernhard.reiter
Date: 2008-08-19 09:00:33 EDT (Tue, 19 Aug 2008)
New Revision: 48214
URL: http://svn.boost.org/trac/boost/changeset/48214
Log:
Some (rather cosmetic) *order algorithm fixes.
Text files modified:
sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/cursor/inorder.hpp | 16 +++++++++++---
sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/cursor/postorder.hpp | 43 +++++++++++++++++++++++++++------------
sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/cursor/preorder.hpp | 28 +++++++++++--------------
sandbox/SOC/2006/tree/trunk/libs/tree/test/forest_tree_test.cpp | 2
4 files changed, 55 insertions(+), 34 deletions(-)
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/cursor/inorder.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/cursor/inorder.hpp (original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/cursor/inorder.hpp 2008-08-19 09:00:33 EDT (Tue, 19 Aug 2008)
@@ -137,6 +137,8 @@
for_each_recursive(s, f);
f(*s);
}
+
+ // Multiway cursor
if (!t.empty())
for_each_recursive(t, f);
}
@@ -162,6 +164,8 @@
for_each_recursive(s, f);
f(*s);
}
+
+ // Multiway cursor
if (!t.empty())
for_each_recursive(t, f);
return f;
@@ -181,11 +185,13 @@
s.to_begin();
t.to_begin();
- while (s!=r) {
+ for (; s != r; ++s, ++t) {
if (!s.empty())
copy(s, t);
- *++t=*++s;
+ *t=*s;
}
+
+ // Multiway cursor
if (!r.empty())
copy(r, t);
return t;
@@ -212,11 +218,13 @@
s.to_begin();
t.to_begin();
- while (s!=r) {
+ for (; s != r; ++s, ++t) {
if (!s.empty())
transform(s, t, op);
- *++t=op(*++s);
+ *t=op(*s);
}
+
+ // Multiway cursor
if (!r.empty())
transform(r, t, op);
return t;
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/cursor/postorder.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/cursor/postorder.hpp (original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/cursor/postorder.hpp 2008-08-19 09:00:33 EDT (Tue, 19 Aug 2008)
@@ -158,11 +158,14 @@
void for_each_recursive(Cursor s, Op& f)
{
Cursor t = s;
- s.to_begin();
- do
+ for (s.to_begin(); s != t.end(); ++s)
if (!s.empty())
for_each_recursive(s, f);
- while (s++ != t.end());
+
+ // Multiway cursor
+ if (!s.empty())
+ for_each_recursive(s, f);
+
f(*t.to_begin());
}
@@ -181,11 +184,14 @@
Op for_each(Cursor s, Op f)
{
Cursor t = s;
- s.to_begin();
- do
+ for (s.to_begin(); s != t.end(); ++s)
if (!s.empty())
for_each_recursive(s, f);
- while (s++ != t.end());
+
+ // Multiway cursor
+ if (!s.empty())
+ for_each_recursive(s, f);
+
f(*t.to_begin());
return f;
@@ -204,11 +210,18 @@
InCursor r = s;
s.to_begin();
t.to_begin();
- do {
+
+ for (; s != r.end(); ++s, ++t) {
if (!s.empty())
copy(s, t);
- ++t;
- } while (s++ != r.end());
+// else
+// *t = *s;
+ }
+
+ // Multiway cursor
+ if (!s.empty())
+ copy(s, t);
+
*t = *r.to_begin();
return t;
}
@@ -232,11 +245,15 @@
InCursor r = s;
s.to_begin();
t.to_begin();
- do {
+
+ for (; s != r.end(); ++s, ++t)
if (!s.empty())
- copy(s, t);
- ++t;
- } while (s++ != r.end());
+ transform(s, t, op);
+
+ // Multiway cursor
+ if (!s.empty())
+ transform(s, t, op);
+
*t = op(*r.to_begin());
return t;
}
Modified: sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/cursor/preorder.hpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/cursor/preorder.hpp (original)
+++ sandbox/SOC/2006/tree/trunk/boost/tree/detail/algorithm/cursor/preorder.hpp 2008-08-19 09:00:33 EDT (Tue, 19 Aug 2008)
@@ -155,14 +155,13 @@
void for_each_recursive(Cursor s, Op& f)
{
Cursor t = s.end();
- s.to_begin();
- do {
+ for (s.to_begin(); s != t; ++s) {
f(*s);
if (!s.empty())
for_each_recursive(s, f);
- ++s;
- } while (s != t);
+ }
+ // Multiway cursor
if (!s.empty())
for_each_recursive(s, f);
}
@@ -181,14 +180,13 @@
Op for_each(Cursor s, Op f)
{
Cursor t = s.end();
- s.to_begin();
- do {
+ for (s.to_begin(); s != t; ++s) {
f(*s);
if (!s.empty())
for_each_recursive(s, f);
- ++s;
- } while (s != t);
+ }
+ // Multiway cursor
if (!s.empty())
for_each_recursive(s, f);
@@ -208,14 +206,13 @@
s.to_begin();
t.to_begin();
- do {
+ for (; s != r; ++s, ++t) {
*t = *s;
if (!s.empty())
copy(s, t);
- ++t;
- ++s;
- } while (s != r);
+ }
+ // Multiway cursor
if (!r.empty())
copy(r, t);
@@ -241,14 +238,13 @@
InCursor r = s.end();
s.to_begin();
t.to_begin();
- do {
+ for (; s != r; ++s, ++t) {
*t = op(*s);
if (!s.empty())
transform(s, t, op);
- ++s;
- ++t;
- } while (s != r);
+ }
+ // Multiway cursor
if (!s.empty())
transform(s, t, op);
Modified: sandbox/SOC/2006/tree/trunk/libs/tree/test/forest_tree_test.cpp
==============================================================================
--- sandbox/SOC/2006/tree/trunk/libs/tree/test/forest_tree_test.cpp (original)
+++ sandbox/SOC/2006/tree/trunk/libs/tree/test/forest_tree_test.cpp 2008-08-19 09:00:33 EDT (Tue, 19 Aug 2008)
@@ -96,7 +96,7 @@
test::preorder::traversal(test_list.begin(), test_list.end());
BOOST_CHECK(test_list.size() == 11);
test_list.clear();
-
+
//test::preorder::algorithms(ft.root(), ft.root()); // FIXME: Fix algorithms for use in here.
//boost::tree::postorder::copy(ft.root(), oc_test_list);
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk