vector是c++ stl中順序容器的一種,另外也有list,deque兩種順序容器,vector有兩種比較常見的遍歷形式,一種是類似數組的,一種是基於迭代器的。下面通過一些例子來熟悉vector的比較常見的用法。
/*
編者:[email protected]
功能:c++ vector容器用法演示
環境:Win10 Professional 1703 / Microsoft Visual Studio 2017 / Microsoft Visual C++ 2017
備註:無
*/
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <string>
int main()
{
/* 創建vector類型變量 */
std::vector<std::string> vec;
/* 往vec中添加成員 */
vec.push_back(std::string("Nice"));
vec.push_back(std::string("to"));
vec.push_back(std::string("meet"));
vec.push_back(std::string("you"));
vec.push_back(std::string("too"));
vec.push_back(std::string("!"));
vec.push_back(std::string("!"));
/* 容器vec目前的大小 */
std::cout << "before pop_back(), size = " << vec.size() << std::endl;
/* 刪除最後一個元素 */
vec.pop_back();
/* 刪除一個元素後容器vec目前的大小 */
std::cout << "after pop_back(), size = " << vec.size() << std::endl;
/* 容器的容量 */
std::cout << "current capacity = " << vec.capacity() << std::endl;
/* 使用數組的形式遍歷vec */
std::cout << "array style :" << std::endl;
for (int i = 0; i < vec.size(); i++) {
std::cout << vec[i] << '\t';
}
std::cout << std::endl;
/* 使用迭代器遍歷vec */
std::cout << "iterator style :" << std::endl;
for (std::vector<std::string>::iterator i = vec.begin(); i != vec.end(); i++) {
std::cout << *i << '\t';
}
std::cout << std::endl;
/* 清除所有的成員 */
vec.clear();
/* 判斷是否爲空 */
if (vec.empty()) {
std::cout << "vec is empty now!" << std::endl;
}
/* 清除所有的成員後容器vec目前的大小 */
std::cout << "after clear(), size = " << vec.size() << std::endl;
/* 容器的容量 */
std::cout << "current capacity = " << vec.capacity() << std::endl;
return 0;
}