c++ - 在 vector C++ 的索引处插入对象

标签 c++ vector

我需要将一个对象插入到现有的对象 vector 中。我知道我需要使用迭代器来完成它,但我不知道它究竟是如何工作的。

我有按字母顺序排序的 vector ,我需要在搜索后得到的确切索引中按名称插入新对象。所以我有这个。

vector<Person>people;


int index =54;
Person temp;

people.push_back(temp);//insert at end of vector
people.insert(index, temp);//doesnt work for int

任何人都可以帮助我如何正确使用迭代器将我的对象插入 vector 的第 54 个索引并将所有后续对象移动一个索引?

感谢您的帮助。

最佳答案

直接的答案是您需要一个迭代器。 std::vector 的迭代器支持随机访问,这意味着您可以在迭代器中添加或减去整数值。

people.insert(people.begin() + index, temp);

更好的答案是不要使用索引,使用迭代器。你的循环是什么?您应该能够重构循环以使用迭代器而不是索引。

关于c++ - 在 vector C++ 的索引处插入对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22432243/

相关文章:

C++输出二维 vector

c++ - 用一个值替换 vector 中的一系列元素

c++ - QGraphicsObject(0) 而不是指针中的 NULL

C++ 如何在启动时隐藏控制台窗口?

c++ - 释放在 C++ 中的 std::string 中分配的内存

c++ - 当第一个 vector 重新分配时,另一个 vector 中的 std::vectors 会重新分配吗?

c++ - 无法使用 std::basic_string 推导出模板参数

c++ - linux下Qt,如何检测一个进程是否已经运行?

r - 按组在 data.table 中创建新列

c++ - 在 cpp 中使用 2d vector