Revision: 1577
http://svn.sourceforge.net/complement/?rev=1577&view=rev
Author: complement
Date: 2007-05-31 09:12:06 -0700 (Thu, 31 May 2007)
Log Message:
-----------
dev
Modified Paths:
--------------
trunk/complement/explore/test/virtual_time/vtime.h
Modified: trunk/complement/explore/test/virtual_time/vtime.h
===================================================================
--- trunk/complement/explore/test/virtual_time/vtime.h 2007-05-31 04:45:23 UTC (rev 1576)
+++ trunk/complement/explore/test/virtual_time/vtime.h 2007-05-31 16:12:06 UTC (rev 1577)
@@ -23,6 +23,45 @@
typedef uint32_t group_type;
typedef std::hash_map<oid_type, vtime_unit_type> vtime_type;
+template <class _InputIter1, class _InputIter2, class _OutputIter,
+ class _Compare>
+_OutputIter vt_union(_InputIter1 __first1, _InputIter1 __last1,
+ _InputIter2 __first2, _InputIter2 __last2,
+ _OutputIter __result, _Equal __equal, _Aggregate __aggr )
+{
+
+ while ( __first1 != __last1 ) {
+ _InputIter1 __cur1 = __first1;
+ for ( ; __cur1 != __last1, ++__cur1 ) {
+ if ( __equal(*__cur1, *__first2) ) {
+ __aggr( __cur1, __first2, __result );
+ ++__first2;
+ break;
+ }
+ ++__result;
+ }
+ if ( __cur1 == __last1 ) {
+
+ }
+ }
+
+ while (__first1 != __last1 && __first2 != __last2) {
+ if (__comp(*__first1, *__first2)) {
+ *__result = *__first1;
+ ++__first1;
+ } else if (__comp(*__first2, *__first1)) {
+ *__result = *__first2;
+ ++__first2;
+ } else {
+ *__result = *__first1;
+ ++__first1;
+ ++__first2;
+ }
+ ++__result;
+ }
+ return copy(__first2, __last2, copy(__first1, __last1, __result));
+}
+
// typedef std::pair<oid_type, vtime_unit_type> vtime_proc_type;
// typedef std::list<vtime_proc_type> vtime_type;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|