#include <iostream>
#include <vector>
#include <algorithm> //for_each
#include <ctime>
using namespace std;ios
void STRConstructor() //初始化,輸入
{
vector<int> vec(5,12);
//cout << vec << endl; 錯誤dom
vector<int> vec1(5);
for(int i=0;i<5;i++)
cout << vec1[i] << endl;函數
vector<int> vec3(vec); //vector<char>就不行,<>中間必須相同
//cout << vec3 << endl; 錯誤spa
vector<int>::iterator ite=vec3.begin();
vector<int>::iterator ite1=vec3.end();
vector<int> vec4(ite,ite1);
//cout << vec4 << endl; 錯誤
for(int i=0;i<3;i++)
cout << vec4[i] << endl;
}指針
void strcapacity()
{
vector<int>vec(3);
vector<int>vec2();
//cout << vec.empty() << '\n' << vec2.empty() << endl; //報錯?vec2
vec.reserve(10);
cout << vec.size() << vec.capacity() << endl;
vec.resize(2); //從新設置元素個數
cout << vec.size() << vec.capacity() << endl;對象
//vector<int> vec1(5);
//vec1.push_back(1);
//vec1.push_back(1); //不一樣編譯器,效果不一樣 vs現有容量的一半
//cout << vec1.capacity() << endl;ci
//從新申請空間會使迭代器失效0
}編譯器
void fun(int i) //不能用模板
{
cout << i << ' ';
}數學
void output() //輸出
{
vector<int>vec;
for(int i=0;i<10;i++)
{
vec.push_back(i);
cout << vec[i] << vec.at(i) <<endl;
}
cout << vec.back() << endl;
vector<int>::iterator ite=vec.begin();
for(;ite!=vec.end();ite++)
{
cout << *ite << endl;
}
for_each(vec.begin(),vec.end(),fun);
}string
void operation() //操做函數
{
vector<int>vec;
vector<int>vec1(5,5);
for(int i=0;i<10;i++)
{
vec.push_back(i); //尾添加
}
//vec.insert(vec.begin()+3,12);
//vec.insert(vec.begin()+2,3,3);
//vec.insert(vec.begin()+3,vec1.begin(),vec1.begin()+2);
vec.pop_back(); //尾刪除
//vec.erase(vec.begin()+3);
//vec.erase(vec.begin()+3,vec.end());
//vec.swap(vec1,vec);
cout << (vec<vec1) << endl;
for_each(vec.begin(),vec.end(),fun);
}
void algorithm() //須要頭文件include<algorithm>
{
vector<int>vec;
vector<int>vec1(5,5);
for(int i=0;i<10;i++)
{
vec.push_back(10-i); //尾添加
}
for_each(vec.begin(),vec.end(),fun);
sort(vec.begin(),vec.end());
for_each(vec.begin(),vec.end(),fun);
sort(vec.begin(),vec.end(),greater<int>()); //include<functional>
for_each(vec.begin(),vec.end(),fun);
}
void supplement() //補充
{
vector<int>vec;
for(int i=0;i<10;i++)
{
vec.push_back(i);
}
vector<int>vec1(8,14);
//vec.assign(vec1.begin(),vec1.end()); //清除之前的,重新賦值
//vec.assign(3,0); //清除之前的,重新賦值
//vec.clear();
srand((unsigned int)time(0)); //真正的隨機
random_shuffle(vec.begin(),vec.end()); //隨機亂序
for_each(vec.begin(),vec.end(),fun);
cout << endl;
random_shuffle(vec.begin(),vec.end());
for_each(vec.begin(),vec.end(),fun);
cout << endl;
}
int main()
{
vector<int> vec;
//STRConstructor();
//strcapacity();
//output();
//operation();
//algorithm();
//supplement();
return 0;
}
/*
vector 固定的空間 經常使用
array
valarray cmath.h -- C語言中的操做函數,與計算有關
*/
/*
vector 能夠放string 結構體 指針 對象 其餘容器的對象
array
valarray //有不少數學函數 他裏邊有一個cmath.h函數的封裝*/