📅  最后修改于: 2023-12-03 15:13:44.759000             🧑  作者: Mango
迭代器和指针都是C/C++中用于处理容器(如数组、链表、字符串等)中元素的工具,但它们有以下几个区别:
以下是使用迭代器和指针分别实现对数组中元素的遍历,并求出数组元素的平均值的示例。
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vec = {1, 2, 3, 4, 5};
int sum = 0;
// 使用迭代器遍历vector中的元素
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it)
{
sum += *it;
}
std::cout << "Average: " << (double)sum / vec.size() << std::endl; // 输出平均值
return 0;
}
在上面的示例中,使用vector
容器和迭代器遍历容器中的元素,获取元素的值并累加到sum
变量中,最终输出数组元素的平均值。
#include <iostream>
int main()
{
int arr[] = {1, 2, 3, 4, 5};
int sum = 0;
// 使用指针遍历数组中的元素
for (int* p = arr; p != arr + 5; ++p)
{
sum += *p;
}
std::cout << "Average: " << (double)sum / 5 << std::endl; // 输出平均值
return 0;
}
在上面的示例中,使用指针遍历数组中的元素,获取元素的值并累加到sum
变量中,最终输出数组元素的平均值。
可以看到,使用迭代器和指针的代码非常相似,但它们的作用和使用场景不同。在处理STL容器(如vector
、list
等)等场景中,使用迭代器更为方便和安全。在处理数组等数据结构时,使用指针更为方便和灵活。