Changeset 7058 for lang/cplusplus
- Timestamp:
- 02/23/08 07:51:21 (5 years ago)
- Files:
-
- 1 modified
-
lang/cplusplus/range_coder/range_coder.hpp (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/cplusplus/range_coder/range_coder.hpp
r7043 r7058 13 13 }; 14 14 15 template <class Store> class rc_encoder_t : public rc_type_t {15 template <class Iter> class rc_encoder_t : public rc_type_t { 16 16 public: 17 rc_encoder_t( Store *_store) : store(_store) {17 rc_encoder_t(const Iter &i) : iter(i) { 18 18 L = 0; 19 19 R = 0xFFFFFFFF; … … 36 36 buffer++; 37 37 for (;carryN > 0; carryN--) { 38 store->push_back(buffer);38 *iter++ = buffer; 39 39 buffer = 0; 40 40 } … … 49 49 carryN++; 50 50 } else { 51 store->push_back(buffer);51 *iter++ = buffer; 52 52 for (; carryN != 0; carryN--) { 53 store->push_back(0xFF);53 *iter++ = 0xFF; 54 54 } 55 55 buffer = newBuffer; … … 61 61 } 62 62 void final() { 63 store->push_back(buffer);63 *iter++ = buffer; 64 64 for (; carryN != 0; carryN--) { 65 store->push_back(0xFF);65 *iter++ = 0xFF; 66 66 } 67 67 uint t = L + R; 68 68 while (1) { 69 69 uint t8 = t >> 24, l8 = L >> 24; 70 store->push_back(l8);70 *iter++ = l8; 71 71 if (t8 != l8) { 72 72 break; … … 82 82 byte buffer; 83 83 uint carryN; 84 Store* store;84 Iter iter; 85 85 uint counter; 86 86 };
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)