Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Stl ???

  1. #1
    Ngày gia nhập
    05 2007
    Bài viết
    64

    Mặc định Stl ???

    Khi
    Code:
    #include<map>
    vào chương trình, ta có thể sử dụng 2 khai báo
    Code:
    map <int,int> myMap;
    map <int,int>::iterator myIter;
    Làm thế nào để viết 1 thư viện tương tự như <map> vậy các bạn.
    Đối với khai báo đầu tiên, mình nghĩ có thể dùng template để viết như bình thường.
    Còn khai báo thứ 2, mình ko biết phải sử dụng cái j cả, cú pháp này có lẽ quá mới mẻ đối với mình.
    Các bạn giúp mình nha. Cảm ơn nhiều !!!
    I know... nothing

  2. #2
    Ngày gia nhập
    10 2007
    Nơi ở
    HCMUNS
    Bài viết
    459

    Bạn tham khảo đoạn này:

    Code:
    void stack::push(int i)
    {
           if(tos==SIZE) {
                  cout << "Stack is full.\n";
                  return;
            }
             stck[tos] = i;
             tos++;
    }
    The :: is called the scope resolution operator. Essentially, it tells the compiler that this version of push() belongs to the stack class or, put differently, that this push() is in stack's scope. In C++, several different classes can use the same function name. The compiler knows which function belongs to which class because of the scope resolution operator.
    Keep moving forward!

    ... Retired ...

  3. #3
    Ngày gia nhập
    11 2006
    Bài viết
    75

    Cái design của thằng map giản lược như sau:
    Code:
    template <class Key, class Value, class Compare, class Allocator>
    class map: public something <...> {
        ....
        //Note that XXX is a type
        typedef typename XXX::iterator iterator;
        ....
    };

    2 đồng chí cuối có default value (compare là std::less<T> còn allocator có thể là malloc allocator (hoặc new allocator hoặc là một cái khác) tùy vào STL platform) nên thường chỉ cần khai báo như của bác:

    Code:
     map <int, int> Map;

    Còn cái iterator và operator:: thì bác chắc rõ rồi.
    Đã được chỉnh sửa lần cuối bởi ilovecplusplus : 18-10-2007 lúc 04:53 AM.
    Our dreams are young and we both know they take us where we want to go...

  4. #4
    Ngày gia nhập
    05 2007
    Bài viết
    64

    Nói vậy thì có nghĩa iterator là 1 một thành phần dữ liệu public của lớp map đúng ko mọi người ???
    I know... nothing

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn