STL之vector基本使用例項
阿新 • • 發佈:2019-02-09
最近複習STL,對於vector的一些功能知道,但是就忘記了函式名是啥了,這就很尷尬,所以把經常使用的方法都用了,也方便以後回顧。
vector基本方法-->看圖:
test_code:
void test_vector()
{
vector<int> vec;
vec.push_back(1); //尾插
vec.push_back(3);
vec.push_back(5);
vec.push_back(7);
cout << "begin() , end() 測試 :" << endl; //返回的是迭代器
cout << *(vec.begin() ) << endl;
//結果 : begin返回指向容器第一個元素的迭代器,end返回指向容器最後一個元素後面位置的迭代器
cout << "size() , max_size() capacity() empty() 測試 :" << endl;
cout << vec.size() << endl;
cout << vec.max_size() << endl; //max_size最大的可能的元素個數
cout << vec.capacity() << endl;
cout << vec.empty() << endl;
cout << "resize() , reserve() 測試 :" << endl;
vec.resize(20); //設定size的大小
cout << vec.size() << endl;
cout << vec.capacity() << endl;
vec.reserve(30); //設定capacity的大小
cout << vec.size() << endl;
cout << vec.capacity() << endl;
cout << " empty() , [] , = 測試 :" << endl;
cout << vec.empty() << endl;
cout << vec[0] << endl;
vec[0] = 0;
cout << vec[0] << endl;
cout << " iterator , erase測試 :" << endl;
vector<int>::iterator it = vec.begin();
for (; it != vec.end(); ++it)
cout << *it << " ";
//for (it = vec.begin(); it != vec.end(); ++it)
//{
// vec.erase(it); //迭代器失效!!
//}
//下面是正確的使用:
for (it = vec.begin(); it != vec.end();)
{
it = vec.erase(it);
}
cout << "insert() , clear() 測試:"<<endl;
vec.push_back(1);
vec.push_back(3);
vec.push_back(5);
vec.push_back(7);
it = vec.begin();
vec.insert(it, 0); //在it指向位置 前插
for (; it != vec.end(); ++it)
cout << *it << " ";
cout << endl;
cout << vec.size() << endl;;
vec.clear(); //清除資料
cout<<vec.size() << endl;
cout << vec.capacity() << endl;
cout << "front() , back() , at() 的測試:" << endl;
vec.push_back(1);
vec.push_back(3);
vec.push_back(5);
vec.push_back(7);
cout << vec.front() << "~~" << vec.back() << endl;
for (size_t i = 0; i < vec.size(); ++i)
vec.at(i) = i*i;
for (size_t i = 0; i < vec.size(); ++i)
cout<<vec.at(i) << endl;
vec.pop_back(); // 尾刪
vec.pop_back(); // 尾刪
vec.pop_back(); // 尾刪
vec.pop_back(); // 尾刪
}