C++中二维容器vector的push_back该怎么使用?举例说明
时间: 2024-03-14 19:45:35 浏览: 60
二维容器vector的push_back使用方法如下:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
// 定义一个二维vector,容纳int类型数据
vector<vector<int>> vec;
// 在第一维末尾插入一个长度为3的vector
vec.push_back(vector<int>(3));
// 在第二维末尾插入一个值为1的元素
vec[0].push_back(1);
// 输出结果
for (int i = 0; i < vec.size(); i++) {
for (int j = 0; j < vec[i].size(); j++) {
cout << vec[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
上述代码会输出以下结果:
```
0 0 0 1
```
其中,第一行的三个0代表第一维中第一个元素的三个元素,第二行的1代表第一维中第一个元素的第四个元素。
相关问题
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
```
被移动后的vector可以继续push_back 元素吗?
被移动后的`vector`不能继续`push_back`元素,因为在移动操作之后,被移动的`vector`的内部状态就已经被设置为了移后即焚状态,即不能再使用该对象。如果尝试对该对象进行`push_back`操作,会导致未定义行为。
如果需要在移动后继续添加元素,可以将移动后的`vector`重新赋值为一个新的`vector`,然后对新的`vector`进行操作。例如:
```c++
#include <iostream>
#include <vector>
#include <string>
int main() {
std::vector<std::string> source = {"hello", "world"};
std::vector<std::string> dest = std::move(source); // 移动 source 到 dest
dest.push_back("new"); // 对 dest 进行操作
std::cout << "size of source: " << source.size() << std::endl; // 输出 0
std::cout << "size of dest: " << dest.size() << std::endl; // 输出 3
return 0;
}
```
在上面的代码中,先将`source`移动到`dest`,然后对`dest`进行了`push_back`操作,最终输出`source`的大小为0,`dest`的大小为3。