C++ vector.pop_back()
时间: 2024-07-29 08:01:37 浏览: 76
`std::vector` 是 C++ 标准库中的动态数组容器,它允许你在运行时添加、删除元素。`pop_back()` 是 `vector` 类的一个成员函数,用于从向量的末尾移除并删除最后一个元素。这个操作会改变向量的大小,并减少其容量,如果向量已经满了并且没有预留空间,可能会触发一次自动的内存调整。
以下是 `pop_back()` 函数的一般使用示例:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
// 删除最后一个元素
vec.pop_back();
```
调用 `pop_back()` 后,`vec` 现在包含 `{1, 2, 3, 4}`。如果你试图访问已移除的元素,将会遇到越界错误,因为它的索引已经被改变了。
相关问题
c++vector push_back pop_back
C++ 的 vector 类是一个动态数组,可以在运行时动态增加或减少其大小。可以使用 push_back() 函数将元素添加到 vector 的末尾,使用 pop_back() 函数将 vector 的末尾元素删除。示例代码如下:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main()
{
// 创建一个空的 vector
vector<int> v;
// push_back() 函数添加元素到 vector 的末尾
v.push_back(1);
v.push_back(2);
v.push_back(3);
// 输出 vector 中的元素
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
cout << endl;
// pop_back() 函数删除 vector 的末尾元素
v.pop_back();
// 输出 vector 中的元素
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
cout << endl;
return 0;
}
```
输出结果:
```
1 2 3
1 2
```
#include <iostream> #include <vector> using namespace std; class Solution { private: vector<vector<int>> result; // 结果集 int five_count = 0; // 队列中拿着0.5元的人数计数器 int one_count = 0; // 队列中拿着1元的人数计数器 public: vector<vector<int>> queueShop(int n) { vector<int> each_case; each_case.clear(); result.clear(); backtracking(each_case, n); return result; } void backtracking(vector<int> &each_case, int n) { if (each_case.size() == 2 * n) { result.emplace_back(each_case); return; } if (five_count < n) { each_case.emplace_back(5); five_count++; backtracking(each_case, n); each_case.pop_back(); five_count--; } /* 只有当前队列中0.5元的数目多于1元时才考虑继续加入1元 */ if (one_count < n && five_count > one_count) { each_case.emplace_back(1); one_count++; backtracking(each_case, n); each_case.pop_back(); one_count--; } } }; int main(int argc, char *argv[]) { Solution solution; auto res = solution.queueShop(5); for (const auto &i : res) { for (const auto &j : i) { cout << j << " "; } cout << endl; } }帮我改成python语言
以下是将该C++代码转换成Python的代码:
```python
class Solution:
def __init__(self):
self.result = [] # 结果集
self.five_count = 0 # 队列中拿着0.5元的人数计数器
self.one_count = 0 # 队列中拿着1元的人数计数器
def queueShop(self, n: int) -> List[List[int]]:
each_case = []
self.result.clear()
self.backtracking(each_case, n)
return self.result
def backtracking(self, each_case: List[int], n: int) -> None:
if len(each_case) == 2 * n:
self.result.append(each_case[:])
return
if self.five_count < n:
each_case.append(5)
self.five_count += 1
self.backtracking(each_case, n)
each_case.pop()
self.five_count -= 1
# 只有当前队列中0.5元的数目多于1元时才考虑继续加入1元
if self.one_count < n and self.five_count > self.one_count:
each_case.append(1)
self.one_count += 1
self.backtracking(each_case, n)
each_case.pop()
self.one_count -= 1
if __name__ == '__main__':
solution = Solution()
res = solution.queueShop(5)
for i in res:
print(i)
```
阅读全文