STL::list 遍历元素方法

void printit(DAT vals)
{
	printf("ss= %d\n",vals.val);
}




 list<DAT> mylist;
 DAT mydat;
 for(int i=0;i<10;i++)
 {
  mydat.val = rand() % 1000;//(i-1)*(i-2)*(i-11)*(i-7);
  mylist.push_back(mydat);
  printf("%d ",mydat.val);
 }

 printf("\n");
 mylist.sort();

 //遍历方法1
 printf("Print method 1:\n");
 for_each(mylist.begin(),mylist.end(),printit);


 //遍历方法2 此种方法对于std模板类通用
 printf("Print method 2:\n");
 list<DAT>::iterator it;
 for(it=mylist.begin();it!=mylist.end();it++)
 {
  DAT tem = *it;
  printf("rr = %d \n",tem.val);
 }

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
std::list 是 C++ STL 标准模板库中的一个容器,是一个双向链表,可以在链表中插入、删除元素,同时支持前向迭代器、反向迭代器等,非常灵活。 在使用 std::list 进行遍历的时候,可以使用迭代器来实现,在遍历时,只需要使用迭代器访问每个元素即可。具体操作如下: 1. 创建一个 std::list 对象,并向其中插入若干个元素; 2. 使用 std::list 的 begin() 函数,获取链表头部的迭代器,并将其赋值给一个迭代器对象; 3. 通过迭代器对象来遍历 std::list 中的每个元素,直到迭代器指向链表尾部的 end() 函数返回的迭代器。 4. 在遍历时可以使用 ++ 运算符将迭代器移到下一个元素,也可以使用 * 运算符访问当前元素的值。 示例如下: ```cpp #include <iostream> #include <list> int main() { std::list<int> myList; myList.push_back(3); myList.push_back(5); myList.push_back(1); std::list<int>::iterator it = myList.begin(); while (it != myList.end()) { std::cout << *it << " "; ++it; } return 0; } ``` 以上代码创建了一个 std::list 容器,并向其中插入了 3 个整数,使用迭代器遍历了每个元素并打印输出。输出结果为:3 5 1。 需要注意的是,在遍历 std::list 容器时,应该避免使用迭代器来插入、删除元素,因为这样会破坏迭代器的有效性,可能导致错误的结果。如果需要对容器进行修改,应该使用其他函数来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值