📅  最后修改于: 2023-12-03 15:13:45.051000             🧑  作者: Mango
在 C++ 中,新增和删除元素是常见的操作,尤其是在容器类中。本文将介绍如何使用标准库中的一些函数来进行新增和删除操作。
vector 是 C++ 中的一种动态数组,可以在尾部添加元素,也可以在任意位置删除元素。
使用 push_back()
在尾部添加元素:
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec {1, 2, 3};
vec.push_back(4);
for (auto v : vec)
std::cout << v << " ";
// Output: 1 2 3 4
}
使用 insert()
在指定位置添加元素:
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec {1, 2, 3};
auto it = vec.begin() + 1;
vec.insert(it, 4);
for (auto v : vec)
std::cout << v << " ";
// Output: 1 4 2 3
}
使用 pop_back()
删除元素:
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec {1, 2, 3};
vec.pop_back();
for (auto v : vec)
std::cout << v << " ";
// Output: 1 2
}
使用 erase()
删除指定位置的元素:
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec {1, 2, 3};
auto it = vec.begin() + 1;
vec.erase(it);
for (auto v : vec)
std::cout << v << " ";
// Output: 1 3
}
list 是 C++ 中的双向链表,可以在任意位置添加或删除元素。
使用 push_back()
在尾部添加元素:
#include <iostream>
#include <list>
int main() {
std::list<int> lst {1, 2, 3};
lst.push_back(4);
for (auto v : lst)
std::cout << v << " ";
// Output: 1 2 3 4
}
使用 insert()
在指定位置添加元素:
#include <iostream>
#include <list>
int main() {
std::list<int> lst {1, 2, 3};
auto it = lst.begin();
lst.insert(it, 4);
for (auto v : lst)
std::cout << v << " ";
// Output: 4 1 2 3
}
使用 pop_back()
删除尾部元素:
#include <iostream>
#include <list>
int main() {
std::list<int> lst {1, 2, 3};
lst.pop_back();
for (auto v : lst)
std::cout << v << " ";
// Output: 1 2
}
使用 erase()
在指定位置删除元素:
#include <iostream>
#include <list>
int main() {
std::list<int> lst {1, 2, 3};
auto it = lst.begin();
std::advance(it, 1);
lst.erase(it);
for (auto v : lst)
std::cout << v << " ";
// Output: 1 3
}
deque 是 C++ 中的双端队列,可以在队头和队尾添加或删除元素。
使用 push_back()
在队尾添加元素:
#include <iostream>
#include <deque>
int main() {
std::deque<int> deq {1, 2, 3};
deq.push_back(4);
for (auto v : deq)
std::cout << v << " ";
// Output: 1 2 3 4
}
使用 push_front()
在队头添加元素:
#include <iostream>
#include <deque>
int main() {
std::deque<int> deq {1, 2, 3};
deq.push_front(0);
for (auto v : deq)
std::cout << v << " ";
// Output: 0 1 2 3
}
使用 insert()
在指定位置添加元素:
#include <iostream>
#include <deque>
int main() {
std::deque<int> deq {1, 2, 3};
auto it = deq.begin() + 1;
deq.insert(it, 4);
for (auto v : deq)
std::cout << v << " ";
// Output: 1 4 2 3
}
使用 pop_back()
删除队尾元素:
#include <iostream>
#include <deque>
int main() {
std::deque<int> deq {1, 2, 3};
deq.pop_back();
for (auto v : deq)
std::cout << v << " ";
// Output: 1 2
}
使用 pop_front()
删除队头元素:
#include <iostream>
#include <deque>
int main() {
std::deque<int> deq {1, 2, 3};
deq.pop_front();
for (auto v : deq)
std::cout << v << " ";
// Output: 2 3
}
使用 erase()
删除指定位置的元素:
#include <iostream>
#include <deque>
int main() {
std::deque<int> deq {1, 2, 3};
auto it = deq.begin() + 1;
deq.erase(it);
for (auto v : deq)
std::cout << v << " ";
// Output: 1 3
}