天天看點

vector::at

Access element :

Returns a reference to the element at position n in the vector.

The function automatically checks whether n is within the bounds of valid elements in the vector, throwing anout_of_range exception if it is not (i.e., if n is greater or equal than its size). This is in contrast with memberoperator[], that does not check against bounds.

翻譯:

XXX.at(index);

傳回索引 index 所指的資料,即為了通路對應index中存儲的資料,如果index越界,則抛出out_of_range。

// vector::at
#include <iostream>
#include <vector>

int main ()
{
  std::vector<int> myvector1 (10);   // 10 zero-initialized ints
  std::vector<int>myvector2 (10);
  
  // assign some values:
  for (unsigned i=0; i<myvector1.size(); i++)
    myvector1.at(i)=1;
    
    std::cout << "myvector1 contains:";
  for (unsigned i=0; i<myvector1.size(); i++)
     std::cout << ' ' << myvector1.at(i);
   std::cout << '\n';
   
  //-------------------------------------------
  
for (unsigned i=0; i<myvector2.size(); i++)
    myvector2.at(i)=i;
   
  std::cout << "myvector2 contains:";
  for (unsigned i=0; i<myvector2.size(); i++)
     std::cout << ' ' << myvector2.at(i);
   std::cout << '\n';
   
   //下面的索引越界,導緻抛出 out_of_range_exception
   std::cout<<"\n";
     std::cout<< myvector1.at(20);    //    out_of_range_exception

  return 0;
}