小编ale*_*lex的帖子

c ++:const_iterator和for-each循环

我正在C++中自己实现Vector.这是一个两部分问题.

第1部分:尝试迭代Vector时,我的begin()和end()迭代器无法处理输入参数.下面是我的整个Vector.h实现:

    class iterator{
    public:

        typedef std::random_access_iterator_tag iterator_category;
        typedef T value_type;

        Vector<T>* ptr;
        uint64_t position;
        COMLINK slave;

        void init(void){
            ptr = nullptr;
            position = 0;
        }
        void copy(const iterator& i){
            init();
            ptr = i.ptr;
            position = i.position;
            slave = i.slave;
        }
        void move(iterator&& i){
            init();
            std::swap(ptr, i.ptr);
            std::swap(position, i.position);
            std::swap(slave, i.slave);
        }

        iterator(void){
            init();
        }
        iterator(const iterator& q){
            copy(q);
        }
        explicit iterator(Vector<T>* v, uint64_t offset){
            init();
            ptr = v;
            position = offset;
            slave = v->master;
        }
        T& operator*(void){
            if ((position …
Run Code Online (Sandbox Code Playgroud)

c++ vector const-iterator foreach-loop-container

5
推荐指数
1
解决办法
827
查看次数