1
by _zzzzzzy_ @ 2023-10-23 20:41:25
@[_zzzzzzy_](/user/715244) 怎么用
by 呆呆的她啊 @ 2023-10-23 20:49:12
您好, `vector` 含有成员函数 `insert` ,所以 `vector` 可以调用 `insert` 方法。这和 `vector` 内的元素类型无关。
by only_a_speaker @ 2023-10-23 20:49:56
@[only_a_speaker](/user/1154375) /(ㄒoㄒ)/~~可是代码实现不太会 就是格式上面不太知道怎么书写
by 呆呆的她啊 @ 2023-10-23 20:51:16
@[呆呆的她啊](/user/226167)
一个对象调用成员方法的语法为:对象+点+方法名+括号内传参。
例如,如果我们不使用 `push_back` 而是使用 `insert` 方法在 `vector<int>` 内插入元素,我们可以这样写:
```cpp
vector<int>a;
a.insert(a.end(),456);
a.insert(a.begin(),123);
a.insert(a.end(),789);
```
此时我们就可以获得一个装载 `{123,456,789}` 的整数数组。
by only_a_speaker @ 2023-10-23 20:54:34
```c
struct node
{
int n;
string s;
}t1,t2;
vector<node>vec;
```用ti读取后 push进去 但是我要删除了该怎么用insert呢
by 呆呆的她啊 @ 2023-10-23 20:59:46
@[only_a_speaker](/user/1154375) 好兄弟
by 呆呆的她啊 @ 2023-10-23 21:05:47
@[呆呆的她啊](/user/226167)
您好,我没懂你说“要删除了”是什么意思?
如果你想加入元素,用 `insert` 方法;如果你想删除元素,用 `erase` 方法。
by only_a_speaker @ 2023-10-23 22:37:40
@[only_a_speaker](/user/1154375) 不好意思 我这里是说插入不是删除
by 呆呆的她啊 @ 2023-10-23 22:55:05
@[呆呆的她啊](/user/226167)
```
struct node
{
int n;
string s;
}t1,t2;
vector<node>vec;
cin >> t1.n >> t1.s;
vec.insert(vec.begin(), t1);
vec.insert(vec.begin(), t1);
cin >> t2.n >> t2.s;
vec.insert(vec.begin(), t2);
```
这样就在数组中插入了两个 `t1` 和一个 `t2` ,此时数组的值为:`{t2, t1, t1}` 。
如果想在指定位置做插入
```
vector<int>a{12, 34, 56, 78};
a.insert(a.begin() + 3, 99);
// 此时 a 中元素为 {12, 34, 56, 99, 78}
```
by only_a_speaker @ 2023-10-23 23:29:23