C++之 链表及auto的使用

    xiaoxiao2023-10-01  178

    链表

    template<typename Elem> struct Link {     Link* prev; //前趋连接     Link* succ; //后继(下一个)连接     Elem val; //值 }

    template<typename Elem>

    class list {      };

    我们能够将每一容器的迭代器都命名为literator。 在标准库中存在着list<T>::iterator、vector<T>::iterator、map<K,V>::iterator

    再次泛化vector

    using声明为一个类型创建别名,即对于我们的vector,iterator是我们用作迭代器类型T*的一个同义词,它 的另一个名字。

    auto

    template<typename T> //要求Element<T>() void user(vector<T>& v, list<T>& lst) {     for (vector<T>::iterator p = v.begin(); p!=v.end(); ++p) cout<<*p<<'\n';

        list<T>::iterator q = find(lst.begin(), lst.end(), T{42});

    }

    可以将变量声明为auto的,表示使用iterator类型作为变量的类型。 template<typename T> //要求Element<T>() void user(vector<T>& v, list<T>& lst) {     for (auto p = v.begin(); p!=v.end(); ++p) cout<<*p<<'\n';

        auto q = find(lst.begin(), lst.end(), T{42});

    } 这里,P是一个vector<T>::iterator, q是一个list<T>::iterator。

    最新回复(0)