Directorio de artículos
P3: ¿Qué funciones miembro contiene el vector?
función miembro | función función |
---|---|
comenzar() | Devuelve un iterador que apunta al primer elemento del contenedor. |
fin() | Devuelve un iterador que apunta a la posición después del último elemento del contenedor, generalmente se usa junto con begin() |
tamaño() | devuelve el número real de elementos |
redimensionar() | Cambiar el número de elementos reales |
vacío() | Determine si hay un elemento en el contenedor, si no hay ningún elemento, devuelva verdadero; de lo contrario, devuelva falso |
insertar() | Insertar uno o más elementos en la posición especificada |
borrar() | eliminar un elemento o un bloque de elementos |
claro() | Eliminar todos los elementos, el tamaño del contenedor se convierte en 0 |
intercambio() | intercambia todos los elementos de dos contenedores |
hacer retroceder() | Agregar un elemento al final de la secuencia |
pop_back() | elimina elementos del final de la secuencia |
Nota: El contenedor de vectores contiene muchas funciones miembro, solo algunas de ellas se enumeran aquí
1. funciones push_back() y pop_back
vector v1={
1,2,3,4,5};
v1.push_back(6);//在末尾添加6
for (int i = 0; i < v1.size(); ++i) {
cout<<v1.at(i)<<' ';
}
**结果:1 2 3 4 5 6
vector v1={
1,2,3,4,5};
v1.pop_back();//不需要参数
for (int i = 0; i < v1.size(); ++i) {
cout<<v1.at(i)<<' ';
}
**结果·:1 2 3 4
función de intercambio 2.swap()
La función de intercambio se puede utilizar para intercambiar el contenido de dos contenedores de vectores , vea el ejemplo:
int a[5]={
1,2,3,4,5};
vector<int> v1,v2;
v1.assign(a,a+5); //初始化v1={1,2,3,4,5}
v2.assign(3,6); //初始化v2={6,6,6}
v1.swap(v2); //swap()实现vector容器交换
//以下为输出容器元素,检测结果
for (int i = 0; i < v1.size(); ++i) {
cout<<v1[i]<<' ';
}
cout<<endl;
for (int i = 0; i < v2.size(); ++i) {
cout<<v2[i]<<' ';
}
cout<<endl;
**结果:6 6 6
1 2 3 4 5
//实现了交换
3. insertar () función de inserción
- La forma más fácil de insertar datos en una ubicación específica está
v.insert(pos,x);
aquíPuntero para posición posPara determinar, x es el dato a insertar, y existen otras formas de inserción, ver ejemplos:
vector<int> v1, v2;
v1 = {
1, 2, 3, 4, 5};
//指定位置插入元素
v1.insert(v1.begin() + 2, 100);//第一个元素为指针
for (int i = 0; i < v1.size(); ++i) {
cout << v1.at(i) << ' ';
}
cout << endl;
//**结果:1 2 100 3 4 5 //指针指向的位置变成指定数据,后面的元素依次后移
//指定位置插入多个元素
v1.insert(v1.begin(), 3, 99);
for (int i = 0; i < v1.size(); ++i) {
cout << v1.at(i) << ' ';
}
cout << endl;
//**结果:99 99 99 1 2 100 3 4 5
//指定位置插入区间数据
v2 = {
1, 2, 3, 4, 5};
int b[5] = {
10, 20, 30, 40, 50};
v2.insert(v2.begin() + 1, b + 1, b + 3);
for (int i = 0; i < v2.size(); ++i) {
cout << v2.at(i) << ' ';
}
cout << endl;
//**结果:1 20 30 2 3 4 5
4.empty() juicio función vacía
vector<int> v1, v2;
v1 = {
1, 2, 3, 4, 5};
cout << "v1=" << v1.empty() << endl;
cout << "v2=" << v2.empty() << endl;
**结果:v1=0//代表空
v2=1
5.resize() para cambiar la función de longitud del contenedor
- Reducir la longitud, si hay un elemento en la posición reducida, el elemento se eliminará
vector<int> v1; //如果长度缩小,会将后面的元素删除
v1 = {
1, 2, 3, 4, 5};
v1.resize(3);
for (int i = 0; i < v1.size(); ++i) {
cout << v1[i] << ' ';
**结果:1 2 3 //原本是5个元素,当长度减小为3,原本后面的元素就被删除了
}
- aumentar la longitud
vector<int> v1, v2;
int a[5] = {
1, 2, 3, 4, 5};
v2.assign(a, a + 5);
v2.resize(8); //传入的参数要大于原来的容器长度
for (int i = 0; i < v2.size(); ++i) {
cout << v2[i] << ' ';
}
cout << endl;
//结果:1 2 3 4 5 0 0 0 //增加的位置会自动补0
También puede especificar el valor del área extendida
vector<int> v1, v2;
int a[5] = {
1, 2, 3, 4, 5};
v2.assign(a, a + 5);
v2.resize(8,10); //第一个参数为要扩展的长度,第二个参数为指定数值
for (int i = 0; i < v2.size(); ++i) {
cout << v2[i] << ' ';
}
cout << endl;
**结果:1 2 3 4 5 10 10 10
6. erase () función de eliminación
vector<int> v1, v2;
v1 = {
1, 2, 3, 4, 5};
v1.erase(v1.begin() + 2);//注意传入的是指向要删除数据的指针!
for (int i = 0; i < v1.size(); ++i) {
cout << v1.at(i) << ' ';
}
cout << endl;
//**结果:1 2 4 5
7.clear () borrar función
vector<int> v1, v2;
v1 = {
1, 2, 3, 4, 5};
v1.clear();
cout << v1.empty();
cout << endl;
//结果:1 代表容器v1为空