打铁ing~
有组队的吗?一起不咯!
淦!!!
#include<vector>
#include<iostream>
using namespace std;
int main()
{
int s[5] = { 3,5,7,8,9 };
vector<int> a1;
vector<int> a2(4, 88);
vector<int> a3(a2); //复制
vector<int> a4(s,s+5);
//迭代器式遍历动态数组
vector<int>::iterator it;
for (it = a4.begin(); it != a4.end(); it++)
{
cout << *it << " ";
}
cout << endl;
//数组
int a = a4[4];
cout << a<<endl;
//size()
cout << "a4 的大小:" << a4.size() << endl;
//front() back()
cout << "a4的第一个:" << a4.front() << endl;
cout << "a4的最后一个:" << a4.back() << endl;
//clear()
a2.clear();
for (it = a2.begin(); it != a2.end(); it++)
{
cout << *it << " ";
}
cout <<"!!!"<< endl;
//empty() 空就返回1 非空返回 0
if (bool is_empty = a2.empty())
cout << "NO!" << endl;
int x = a4.empty();
cout << "x="<<x<<endl;
//swap() 动态交换
int b1[4] = { 1,3,5,7 };
int b2[5] = { 2,4,6,8,10 };
vector<int> b3(b1, b1 + 4);
vector<int> b4(b2, b2 + 5);
vector<int>::iterator it1;
for (it1 = b3.begin(); it1 != b3.end(); it1++)
{
cout << *it1 << " ";
}
cout << endl;
vector<int>::iterator it2;
for (it2 = b4.begin(); it2 != b4.end(); it2++)
{
cout << *it2 << " ";
}
cout << endl;
cout << "swap交换后:" << endl;
b3.swap(b4);
vector<int>::iterator it3;
for (it3 = b3.begin(); it3 != b3.end(); it3++)
{
cout << *it3 << " ";
}
cout << endl;
vector<int>::iterator it4;
for (it4 = b4.begin(); it4 != b4.end(); it4++)
{
cout << *it4 << " ";
}
cout << endl;
//push_back() 向动态数组尾部插入一个元素
a4.push_back(100);
cout << "push_back后:" << endl;
vector<int>::iterator it5;
for (it5 = a4.begin(); it5 != a4.end(); it5++)
{
cout << *it5 << " ";
}
cout << endl;
//insert() begin()+i / end()
//insert(begin()+i,j(想要插入的个数),n(插入的值))
a4.insert(a4.begin()+2,3, 101);
cout << "insert后:" << endl;
vector<int>::iterator it6;
for (it6 = a4.begin(); it6 != a4.end(); it6++)
{
cout << *it6 << " ";
}
cout << endl;
cout << endl;
cout << endl;
//将一个数组插入到vector中
cout << "将一个数组插入到vector中:"<<endl;
int c0[3] = { 1,2,3 };
int c1[4] = { 4,5,6,7 };
vector<int> c3(c0,c0+3);
c3.insert(c3.end(), c1, c1 + sizeof(c1) / sizeof(int));
vector<int>::iterator it7;
for (it7 = c3.begin(); it7 != c3.end(); it7++)
{
cout << *it7 << " ";
}
cout << endl;
//pop_back() 删除结尾的元素
cout << "删除结尾的元素后:" << endl;
c3.pop_back();
vector<int>::iterator it8;
for (it8 = c3.begin(); it8 != c3.end(); it8++)
{
cout << *it8 << " ";
}
cout << endl;
//pop_back_n(i) 删除多个
cout << "删除结尾的n个元素后:" << endl;
c3._Pop_back_n(3);
vector<int>::iterator it9;
for (it9 = c3.begin(); it9 != c3.end(); it9++)
{
cout << *it9 << " ";
}
cout << endl;
//erase(c3.begin()+i) 删除某位置的元素
cout << " 删除某i位置的元素后:" << endl;
c3.erase(c3.begin() + 2);
vector<int>::iterator it10;
for (it10 = c3.begin(); it10 != c3.end(); it10++)
{
cout << *it10 << " ";
}
cout << endl;
//erase(c3.begin()+i,c3.begin()+j) 删除从i到j的元素
cout << " 删除从i到j的元素后:" << endl;
int d[10] = { 1,2,3,4,5,6,7,8,9,10 };
vector<int> d1(d, d + 10);
d1.erase(d1.begin() + 2, d1.begin() + 5);
vector<int>::iterator it11;
for (it11 = d1.begin(); it11 != d1.end(); it11++)
{
cout << *it11 << " ";
}
cout << endl;
习题:将vector a中插入{1,4,3,7,9,3,6,8,3,5,2,3,7},删除等于3的元素,打印结果
int a[] = { 1,4,3,7,9,3,6,8,3,5,2,3,7 };
vector<int> a1(a, a + sizeof(a) / sizeof(int));
for (int i = 0; i < a1.size(); i++)
{
if (a1[i] == 3)
{
a1.erase(a1.begin() + i);
}
}
vector<int> ::iterator it;
for (it = a1.begin(); it != a1.end(); it++)
{
cout << *it << " ";
}
cout << endl;