예제 #1
0
파일: test2.cpp 프로젝트: bvdberg/code
void print(char* str, Deque& container) {
    const Deque::Items items = container.getCopy();    
    Deque::ItemsConstIter iter = items.begin();
    printf("---- %s ----\n", str);
    while (iter != items.end()) {
        printf("%d\n", *iter);
        ++iter;
    }
}
예제 #2
0
파일: test.cpp 프로젝트: bvdberg/code
int main(int argc, char* argv[]) {
    int count = atoi(argv[1]) * 100;
//    Map container; printf("map %d ", count);
    Deque container; printf("deque %d ", count);
//    Vector container; printf("vector %d ", count);
    for (int i=0; i<count; ++i) {
        container.addItem(new Object());
    }

    u_int64_t begin = getCurrentTime();
//    const Map::Items copy = container.getCopy();
    const Deque::Items copy = container.getCopy();
//    const Vector::Items copy = container.getCopy();
    u_int64_t end = getCurrentTime();
    u_int64_t diff = end - begin;
    printf("%llu usec\n", diff);
    return 0;
}
예제 #3
0
파일: test2.cpp 프로젝트: bvdberg/code
int main() {
    int count = 20;
    Player player;
    Deque container;
    for (int i=0; i<count; ++i) { container.addItem(i); }

    // Old way
    const Deque::Items items = container.getCopy();    
    Deque::ItemsConstIter iter = items.begin();
    while (iter != items.end()) {
        if (*iter % 3 == 0)  container.removeItem(*iter);
        ++iter;
    }
    
    // New way
    print("before", container);
    MyIntOperator func(player);
    container.forEachItem(func);
    print("after", container);

    return 0;
}