如何用容器列表实现功能

时间:2014-03-24 21:47:36

标签: c++ list function containers

我正在学习容器清单。我想写函数替换(索引上的元素),插入(索引上的元素),我想知道如何删除它们。我大约两天学习这个,我观看视频和阅读文章,但我不知道如何编写这段代码。 我知道列表是如何工作的。

这就是我想象的(这只是一个开始)

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) {

}

我已经在程序开头创建了姓名和姓氏两者字符串的接触结构。

2 个答案:

答案 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进行容器中间插入或删除等修改。