我正在学习容器清单。我想写函数替换(索引上的元素),插入(索引上的元素),我想知道如何删除它们。我大约两天学习这个,我观看视频和阅读文章,但我不知道如何编写这段代码。 我知道列表是如何工作的。
这就是我想象的(这只是一个开始)
void replace(list<Contact> &listOf, int index, const Contact &information) {
for(list<int>::iterator it = listOf.begin(); it != listOf.end(); it++){
}
}
我不知道for循环是否写得正确,但我想它会通过列表,如果找到想要替换它的索引,那么juse会覆盖。
我认为功能插入具有相同的参数。
这就是我想象的删除它,但我不确定如何实现。
Contact delete(list<Contact> &listOf, int index) {
}
我已经在程序开头创建了姓名和姓氏两者字符串的接触结构。
答案 0 :(得分:1)
应该编写循环
for (list<Contact>::iterator it = listOf.begin(); it != listOf.end(); ++it) {
do what you wan't with *it.
}
答案 1 :(得分:1)
列表没有随机访问权限,因此不适合此类操作。如果你坚持,这是一种避免自己编写循环的方法:
void replace(list<Contact> &listOf, int index, const Contact &information) {
list<int>::iterator it = listOf.begin();
std::advance(it, index);
*it = information;
}
使用std::vector
进行随机访问操作。使用std::list
进行容器中间插入或删除等修改。