构造对象
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecInt;
}
- 拷贝定义一个vector对象,元素与另一vector对象相同且相等
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecInt1;
vecInt1.push_back(1);
vecInt1.push_back(2);
std::vector<int> vecInt2(vecInt1);
std::vector<int> vecInt3 = vecInt1;
std::vector<int> vecInt4(vecInt1.begin(),vecInt1.end());
}
- 定义一个元素数量为nNum(容量也为nNum)的vector对象;int类型默认值为0,std::string类型默认值为""
#include <iostream>
#include <vector>
#include <string>
int main()
{
int nNum = 10;
std::vector<std::string> vecData(nNum);
}
- 定义一个元素数量为nNum(容量也为nNum),默认值为"你好世界"的vector对象
#include <iostream>
#include <vector>
#include <string>
int main()
{
int nNum = 10;
std::string strValue = "你好世界";
std::vector<std::string> vecData(nNum, strValue);
}
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = { 1,2,3,4 };
}
添加元素
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData;
vecData.push_back(1);
}
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = {1,2};
vecData.insert(vecData.begin(), 5);
}
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = {1,2};
vecData.insert(vecData.begin(), 3, 5);
}
- 在指定位置之前插入另一vector对象范围内的元素
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = {1,2};
std::vector<int> vecData2 = { 5,6 };
vecData2.insert(vecData2.begin(), vecData.begin(), vecData.end());
}
获取元素
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = {10,11,12,13};
int nValue = vecData[0];
}
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = {10,11,12,13};
int nValue = vecData.at(0);
}
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = {10,11,12,13};
int nValue = vecData.front();
}
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = {10,11,12,13};
int nValue = vecData.back();
}
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = {10,11,12,13};
int* pValue = vecData.data();
}
删除元素
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = {10,11,12,13};
vecData.pop_back();
}
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = {10,11,12,13};
vecData.clear();
}
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = {10,11,12,13};
auto iterNext = vecData.erase(vecData.begin());
}
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = {10,11,12,13};
auto iterEnd = vecData.erase(vecData.begin(),vecData.end());
}
遍历元素
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = {10,11,12,13};
for (int i = 0; i < vecData.size(); i++)
{
int nValue = vecData[i];
}
}
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = {10,11,12,13};
for (auto iter = vecData.begin(); iter != vecData.end(); iter++)
{
int nValue = *iter;
}
}
成员函数
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = {10,11,12,13};
bool bEmpty = vecData.empty();
}
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = {10,11,12,13};
int nSize = vecData.size();
}
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = {10,11,12,13};
vecData.shrink_to_fit();
}
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = { 1,2 };
std::vector<int> vecData2 = {10,11,12,13};
vecData.swap(vecData2);
}
- 改变容器中元素个数(如果少,则默认补全;如果多,则删除多余的元素)
int main()
{
std::vector<int> vecData = { 1,2 };
int nNum = 4;
int nDefault = 10;
vecData.resize(nNum);
vecData.resize(10, nDefault);
}
- 赋给vector对象新内容,删除vector中包含的所有元素,并用形参指定的元素替换它们
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = { 1,2 };
int nNum = 10;
int nValue = 11;
vecData.assign(nNum, nValue);
}
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vecData = { 1,2 };
std::vector<int> vecData2 = {0};
vecData.assign(vecData2.begin(), vecData2.end());
}