#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
void test()
{
//1、初始化
//1.1、创建一个空对象
/* vector<int> number; */
//1.2、创建count个value
/* vector<int> number(10, 3); */
/* vector<int> number(10); */
//1.3、迭代器范围
/* int arr[10] = {1, 3, 5, 7, 9, 2, 4, 6, 8, 10}; */
/* vector<int> number(arr, arr + 10);//[,)左闭右开 */
//1.4、使用大括号
vector<int> number = {1, 2, 3, 5, 6, 8, 7, 4};
//2、遍历
//2.1、下标
for(size_t idx = 0; idx != number.size(); ++idx)
{
cout << number[idx] << " ";
}
cout << endl;
//2.2、迭代器
//y/d + 目标行号 + G
vector<int>::iterator it;
for(it = number.begin(); it != number.end(); ++it)
{
cout << *it << " ";
}
cout << endl;
vector<int>::iterator it2 = number.begin();
for(; it2 != number.end(); ++it2)
{
cout << *it2 << " ";
}
cout << endl;
//3、for与auto
for(auto &elem : number)
{
cout << elem << " ";
}
cout << endl;
}
int main(int argc, char *argv[])
{
test();
return 0;
}
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
template <typename Container>
void display(const Container &con)
{
for(auto &elem : con)
{
cout << elem << " ";
}
cout << endl;
}
void test()
{
cout << "sizeof(vector<int>) = " << sizeof(vector<int>) << endl;
cout << "sizeof(vector<long>) = " << sizeof(vector<long>) << endl;
cout << endl;
vector<int> number = {1, 3, 5, 7, 9, 8, 6, 4, 2, 10};
display(number);
cout << endl << "在vector的尾部进行插入与删除" << endl;
number.push_back(100);
number.push_back(200);
display(number);
number.pop_back();
display(number);
//Q:为何vector不能在头部进行插入与删除?
//A:vector是一端开口的,如果提供在头部进行插入与删除的操作,
//那么动第一个元素,会导致后面的N个元素都需要移动,时间
//复杂度是O(N)
}
int main(int argc, char *argv[])
{
test();
return 0;
}