[C++] auto 关键字

auto

template // requires Element()
void user(vector& v, list& lst)
{
    for (vector::iterator p = v.begin(); p!=v.end(); ++p) 
        cout << *p << '\n';
    
    list::iterator q = find(lst.begin(), lst.end(),T{42});
}
template // requires Element()
void user(vector& v, list& lst)
{
    for (auto p = v.begin(); p!=v.end(); ++p) 
        cout << *p << '\n';
    auto q = find(lst.begin(), lst.end(),T{42});
}
  • 使用auto代替vector::iterator ;
  • 使用auto代替list::iterator;

for

template // requires Container
void print3(const C& cont)
{
  for (const auto& x : cont)
  cout << x << '\n';
}
  • 使用const是保证cont不被修改;
  • 使用&是防止元素过大拷贝代价太高;

ref

Programming -- Principles and Practice Using C++ (Second Edition)
http://www.stroustrup.com/Programming/

你可能感兴趣的:([C++] auto 关键字)