C_and_CPP 板


LINE

开发平台(Platform): (Ex: Win10, Linux, ...) OSX El Capitan 编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出) Homebrew GCC 7.2.0 额外使用到的函数库(Library Used): (Ex: OpenGL, ...) C++ 预设 STL 问题(Question): 我想要把资料传入function後,他再依据传入的值,去执行该做的事 结束後把state改掉,这样在接下来的时候就不会走到同样的state 喂入的资料(Input):预期的正确结果(Expected Output): 0 9 8 7 6 5 4 3 2 1 错误结果(Wrong Output): 0 9 0 7 6 terminated by signal SIGSEGV (Address boundary error) 程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档) #include <iostream> #include <vector> using namespace std; vector<int> arr; int obov(){ arr.push_back(0); return arr.size()-1; } void myfunc(int& id){ if(arr.size()==10) return; if(!id) id = obov(); myfunc(arr[id]); cout << arr[id] << '\n'; } int main(){ int a = obov(); myfunc(a); cout << a << '\n'; return 0; } ( https://pastebin.com/upZsetu0 ) 补充说明(Supplement): 似乎改写成 int a = arr[id]; myfunc(a); arr[id] = a; 就不会有问题了,想请各位大大帮我指出问题点QQ -- ╭─────────────────╮ │ 远くへと広がるの色暖かく│ │ 梦の中で描いたのようなんだ│ │切なくて时をまきもどしてみるかい?│ │ No No No いまが最高!│ ╰─────────────────╯ - --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.193.102.192
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1521121864.A.B51.html ※ 编辑: oToToT (123.193.102.192), 03/15/2018 21:54:07
1F:→ edisonhello: vector在插东西的时候有可能会长大(? 03/15 22:13
2F:→ edisonhello: 你可以在每个obov里面印一下&arr[i] 然後就发现会跳 03/15 22:15
3F:→ oToToT: 喔喔,因为他底层是指标类的东东QQ所以会写到错的地方 03/15 22:38
4F:→ edisonhello: 所以才会有iterator这种东西 03/15 22:54
5F:→ oToToT: 我发现我不会用iterator改写这份code 03/15 23:35
6F:推 LPH66: 你这个应该不能直接用 iterator 做, 理由类似 03/16 00:04
7F:→ LPH66: 在长大的时候旧的 iterator 会失效, 所以你回头的时候 03/16 00:05
8F:→ LPH66: 依然会发生违规 03/16 00:05
9F:→ LPH66: 是有个避免长大的解法叫 .reserve() 就是了... 03/16 00:07
10F:推 steve1012: 你是本来就想写递回吗 然後为啥要传vector element 的 03/16 00:07
11F:→ steve1012: reference 回去? 03/16 00:07
12F:→ steve1012: 你可以传 index… lol 03/16 00:07
13F:→ edisonhello: 喔喔 原来iterator也会烂... (刚刚实验过了) 03/16 00:20
14F:→ edisonhello: 那iterator到底是为了什麽而出现的啊 03/16 00:20
15F:推 jerryh001: 如果是list的话iterator就不会跑掉了 03/16 00:34
16F:→ stucode: iterator 是为了抽象化容器的存取用的。例如实作一个找出 03/16 00:49
17F:→ stucode: 容器中最大值的演算法,如果没有 iterator 来抽象元素 03/16 00:50
18F:→ stucode: 存取动作,对於像是 list 与 array 等叠代方式不同的 03/16 00:50
19F:→ stucode: 容器,就需要针对每种容器各写一份。 03/16 00:50
20F:推 steve1012: iterator 本来就有可能被 invalidate 03/16 05:12
21F:→ loveflames: 只有关联容器跟list能保证iterator有效性 03/16 09:27







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP