ADT
        ast-experimental
      
      
        
          | 
            Last change
 on this file since 5bf3976 was             44856ed, checked in by Michael Brooks <mlbrooks@…>, 4 years ago           | 
        
        
          | 
             
Baseline "new" vector, with iterators. 
 
Implementation has not had thorough correctness testing, e.g. checking wraparound 
behaviours, and at least one such case is commented as unimplemented. 
 
Implementation has not been optimized at the instruction path level, though a basic 
iteration performance check has it within 5% of c++ std::vector. 
 
           | 
        
        
          
            
              - 
Property                 mode
 set to                 
100644
               
             
           | 
        
        
          | 
            File size:
            689 bytes
           | 
        
      
      
| Line |   | 
|---|
| 1 | #include <vector>
 | 
|---|
| 2 | #include <iostream>
 | 
|---|
| 3 | #include <time.h>
 | 
|---|
| 4 | 
 | 
|---|
| 5 | enum { NumElements = 10000, NumReps = 50000 };
 | 
|---|
| 6 | 
 | 
|---|
| 7 | int main() {
 | 
|---|
| 8 |     clock_t start, end;
 | 
|---|
| 9 |     std::vector<float> x;
 | 
|---|
| 10 |     for (int i = 0; i < NumElements; i++) {
 | 
|---|
| 11 |         x.push_back(0.1f * i);
 | 
|---|
| 12 |     }
 | 
|---|
| 13 |     float total;
 | 
|---|
| 14 |     start = clock();
 | 
|---|
| 15 |     for (int rep = 0; rep < NumReps; rep++) {
 | 
|---|
| 16 |         total = 0;
 | 
|---|
| 17 |         for( std::vector<float>::iterator it = x.begin(); it < x.end(); it ++ ) {
 | 
|---|
| 18 |             total += *it;
 | 
|---|
| 19 |         }
 | 
|---|
| 20 |     }
 | 
|---|
| 21 |     end = clock();
 | 
|---|
| 22 |     std::cout << "last total was " << total << std::endl;
 | 
|---|
| 23 |     double elapsed = ((double) (end - start)) / CLOCKS_PER_SEC; \
 | 
|---|
| 24 |     std::cout << "iterating duration was " << elapsed << std::endl;
 | 
|---|
| 25 | }
 | 
|---|
       
      
  Note:
 See   
TracBrowser
 for help on using the repository browser.