社区
工具平台和程序库
帖子详情
如何获得list中第n个对象?
djhdu
2004-03-29 07:18:28
我有一个 std::list<CInfo *> m_InfoList;
我想获得第n个对象
CInfo GetInfo(int n)
{
std::list<CInfo *> Info_iter;
Info_iter=m_InfoList.begin()+nColumn;
if (Info_iter) //错误行
{
return *Info_iter;
}
return NULL;
}
如何写才正确呢?
...全文
996
13
打赏
收藏
如何获得list中第n个对象?
我有一个 std::list m_InfoList; 我想获得第n个对象 CInfo GetInfo(int n) { std::list Info_iter; Info_iter=m_InfoList.begin()+nColumn; if (Info_iter) //错误行 { return *Info_iter; } return NULL; } 如何写才正确呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
student2002
2004-03-31
打赏
举报
回复
改成:
CInfo GetInfo(int n)
{
std::list<CInfo *>::iterator Info_iter;
Info_iter=m_InfoList.begin()+nColumn;
if (Info_iter!=m_InfoList.end()) //错误行
{
return *Info_iter;
}
return NULL;
}
sharkhuang
2004-03-30
打赏
举报
回复
list的iter没有随机属性!只能++ 不能[n]
北极猩猩
2004-03-30
打赏
举报
回复
list适合顺序访问和随机插入,如果经常要随机访问应该使用vector或deque
如果是偶尔要访问第n各元素,可以向上面一样,使用advance
wingfiring
2004-03-30
打赏
举报
回复
可以访问的,不过你要这样:
Info_iter=m_InfoList.begin();
std::advance(Info_iter, nColumn)
可能需要包含头文件:
#include <algorithm>
当然,advance之前,你必须保证list中有不少于nColumn个成员。
Bruceleexiaokan
2004-03-30
打赏
举报
回复
list的advance具有是线性开销。如果开销是主要考虑因素的话,可以采用vector。
vector::iterator具有random iterator type,advance是常数级开销。
Darkay_Lee
2004-03-30
打赏
举报
回复
设计有问题!要随机访问的话,不应该使用list
cgsw12345
2004-03-30
打赏
举报
回复
用iterator可以实现!
rorot
2004-03-29
打赏
举报
回复
list 可以访问第n个对象吗? 除非你抛除去前面得
saville
2004-03-29
打赏
举报
回复
list是链表啊,内存地址不连续的。你用Info_iter=m_InfoList.begin()+nColumn当然不行了
zhangyan_qd
2004-03-29
打赏
举报
回复
如果追究起来,list就是不让你随机访问的。如果要随机访问就应该用vector
allen_zhaozhencn
2004-03-29
打赏
举报
回复
CInfo GetInfo(int n)
{
std::list<CInfo *> Info_iter;
Info_iter = m_InfoList.begin();
int i = 0;
if (n > m_InfoList.size( ) )
throw ;
while(i < n)
{
// Info_iter++;//最好用前置
++Info_iter;
i++;
}
return *Info_iter;
}
这样行吗?
djhdu
2004-03-29
打赏
举报
回复
少判断了n超过size
weixiaohua
2004-03-29
打赏
举报
回复
CInfo GetInfo(int n)
{
std::list<CInfo *> Info_iter;
Info_iter = m_InfoList.begin();
int i = 0;
while(i < n)
{
Info_iter++;
i++;
}
return *Info_iter;
}
这样行吗?
python
list
存储
对象
_《python解释器源码剖析》第4章--python
中
的
list
对象
4.0 序python
中
的
list
对象
,底层对应的则是Py
List
Object。如果你熟悉C++,那么会很容易和C++
中
的
list
联系起来。但实际上,这个C++
中
的
list
大相径庭,反而和STL
中
的vector比较类似4.1 Py
List
Object
对象
我们知道python里面的
list
对象
是支持对元素进行增删改查等操作的,
list
对象
里面存储的,底层无一例外都是PyObject * 指针。所以实...
List
集合存入多个
对象
,若取出一个并改变其值,那么
list
会改变么?
会
JAVA
中
List
集合按照
对象
的某一个或多个字段去重实现
如题继续总结工作
中
遇到的各种需求实现: import org.apache.commons.lang3.StringUtils; import java.util.*; /** * @Auther: * @Date: 2019/1/11 09:11 * @Description: 根据
list
中
对象
指定的n个字段去重测试 */ public class TestMyUser { @org.junit.Test public void test(){ Lis.
把多个
list
合并存入map
中
,并从map
中
读取
list
ps:查资料查了快一天,终于弄好了。记录一下。 多个
list
合并成一个
list
,我在设计
中
需要的是查询多个
list
循环,把这几个lis
对象
加入另一个
list
中
,再存入session
中
,在页面
中
进行读取。查了几个没成功,后来使用hashMap列表。 比如:我的是建立一个HashMap
对象
,列表类型是照片(photo),可以把
list
类型换成自己需要的。 后台Controller
中
: Map&...
c++
list
容器获取第n给元素_你所不知道的序列容器
序列容器序列容器(sequence)只提供插入功能,其
中
的元素都是有序的,但并未排序。序列容器包括:vector向量deque双端队列
list
链表向量类模板向量(vector)是一种随机访问的数组类型,提供了对数组元素的快速、随机访问,以及在序列尾部快速、随机的插入和删除操作。 他是大小可变的向量,在需要时可以改变其大小。创建向量模板(vector)
对象
的方法1. std::vectorname;...
工具平台和程序库
24,860
社区成员
27,333
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章