BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #26784同步于 2009/7/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[合集] 请教大牛们,vector的push_back()用法

shenlei
2009/7/29镜像同步0 回复
☆─────────────────────────────────────☆ yeahivan (日月花草相依伴) 于 (Thu Jul 16 15:23:05 2009) 提到: struct ji_lu { char nam[20];//变量名 int add;//目标地址 int typ;//类型编号 int wei;//维数 vector<int> yyh;//引用行 int ptr;// 入口指针 }; vector<ji_lu> fu_hao_biao; int hang=0; 要是想往fu_hao_biao的某个元素里的yyh里插一个值,这样的语句对么? fu_hao_biao[i].yyh.push_back(hang); 为什么打印出来的值不是往里面插的值呢? ☆─────────────────────────────────────☆ LoveRose (江南西道|Movie) 于 (Thu Jul 16 16:08:38 2009) 提到: 打印函数贴出来看看。。。 【 在 yeahivan (日月花草相依伴) 的大作中提到: 】 : struct ji_lu : { : char nam[20];//变量名 : ................... ☆─────────────────────────────────────☆ yeahivan (日月花草相依伴) 于 (Thu Jul 16 16:11:46 2009) 提到: void fuhaobiao(words reg) { ji_lu dan_ci; int i=0;//i用于判断fu_hao_biao向量插入到了第几个,以便判断下一个新变量的入口指针 while(i<fu_hao_biao.size()&&i>=0)//判断变量是否已存在 { if((strcmp(reg.value,fu_hao_biao[i].nam)==0))//若存在则在它的引用行里再加一个元素 { fu_hao_biao[i].yyh.push_back(hang); i=-2; } i++; } if(i==fu_hao_biao.size())//若该变量是新变量则插入到向量中 { strcpy(dan_ci.nam,reg.value);//变量名赋值 dan_ci.ptr=i;//入口指针赋值 dan_ci.yyh.push_back(hang);//引用行赋值 fu_hao_biao.push_back(dan_ci);//插入到向量中 } } 整个函数就是这样的 ☆─────────────────────────────────────☆ LoveRose (江南西道|Movie) 于 (Thu Jul 16 16:16:33 2009) 提到: 你的hang这个变量在哪初始化的? 【 在 yeahivan (日月花草相依伴) 的大作中提到: 】 : void fuhaobiao(words reg) : { : ji_lu dan_ci; : ................... ☆─────────────────────────────────────☆ yeahivan (日月花草相依伴) 于 (Thu Jul 16 16:17:28 2009) 提到: 【 在 LoveRose 的大作中提到: 】 : 你的hang这个变量在哪初始化的? 是一个全局变量,要从其他函数里获取值 ☆─────────────────────────────────────☆ Shinro (迷茫茫的孩子) 于 (Thu Jul 16 16:21:41 2009) 提到: 打印语句呢 ☆─────────────────────────────────────☆ LoveRose (江南西道|Movie) 于 (Thu Jul 16 16:22:19 2009) 提到: 没看明白你的i是怎么变的。。。 在while里面i一直在++,从while出来以后一定会满足if的判断条件吧? 【 在 yeahivan (日月花草相依伴) 的大作中提到: 】 : 是一个全局变量,要从其他函数里获取值 ☆─────────────────────────────────────☆ LoveRose (江南西道|Movie) 于 (Thu Jul 16 16:23:00 2009) 提到: 是不是要加个break? 【 在 LoveRose (江南西道|Movie) 的大作中提到: 】 : 没看明白你的i是怎么变的。。。 : 在while里面i一直在++,从while出来以后一定会满足if的判断条件吧? ☆─────────────────────────────────────☆ DH (永远的伊谢尔伦) 于 (Thu Jul 16 16:25:18 2009) 提到: 【 在 LoveRose 的大作中提到: 】 : 没看明白你的i是怎么变的。。。 : 在while里面i一直在++,从while出来以后一定会满足if的判断条件吧? 对。while中的if成立后就应该break出来了,否则出来后必定满足了外面if的条件。 ☆─────────────────────────────────────☆ yeahivan (日月花草相依伴) 于 (Thu Jul 16 16:25:30 2009) 提到: 【 在 LoveRose 的大作中提到: 】 : 没看明白你的i是怎么变的。。。 : 在while里面i一直在++,从while出来以后一定会满足if的判断条件吧? 不会啊!如果符合while里的if条件,就会跳出循环的 ☆─────────────────────────────────────☆ LoveRose (江南西道|Movie) 于 (Thu Jul 16 16:26:24 2009) 提到: ==看错了。。。。。 【 在 yeahivan (日月花草相依伴) 的大作中提到: 】 : 不会啊!如果符合while里的if条件,就会跳出循环的 ☆─────────────────────────────────────☆ ki (谁) 于 (Thu Jul 16 16:27:50 2009) 提到: ls的们好可怜啊,你们都不是人啊.......... 【 在 yeahivan 的大作中提到: 】 : struct ji_lu : { : char nam[20];//变量名 : ................... ☆─────────────────────────────────────☆ DH (永远的伊谢尔伦) 于 (Thu Jul 16 16:27:58 2009) 提到: 还有就是我不太明白,因为用c比c++多 那个dan_ci,是一个结构,不是指针,那么每次push_back的时候,岂不是都将同样一个内存地址,不断修改了里面的值,然后增加到迭代器中? 反正类似的问题我在c中都是定义一个指针,然后每次要加入时都要重新malloc一个空间然后保存数据然后加入到链表中,直接用结构不行。 求解c++。 ☆─────────────────────────────────────☆ winton (win小分队|TT) 于 (Thu Jul 16 16:29:09 2009) 提到: fu_hao_biao[i].yyh.push_back(hang); 还是先把这个改过来吧。。。 ☆─────────────────────────────────────☆ NotGo (不靠谱||看门老头[路-右]) 于 (Thu Jul 16 16:29:38 2009) 提到: 呃~~那个while有点问题的样子~~ i-=2;然后i++;又回到了前一个元素;是不是这出错了~~不会c++~~看不大懂~ ☆─────────────────────────────────────☆ yeahivan (日月花草相依伴) 于 (Thu Jul 16 16:29:55 2009) 提到: 【 在 DH 的大作中提到: 】 : 对。while中的if成立后就应该break出来了,否则出来后必定满足了外面if的条件。 不会啊!只有不满足while里的if才会进入外面的if语句,如果满足i被赋值为-2,就跳出循环了 ☆─────────────────────────────────────☆ LoveRose (江南西道|Movie) 于 (Thu Jul 16 16:30:02 2009) 提到: 她写的是i = -2..... 【 在 NotGo (不靠谱||看门老头[路-右]) 的大作中提到: 】 : 呃~~那个while有点问题的样子~~ i-=2;然后i++;又回到了前一个元素;是不是这出错了~~不会c++~~看不大懂~ ☆─────────────────────────────────────☆ yeahivan (日月花草相依伴) 于 (Thu Jul 16 16:30:55 2009) 提到: 【 在 winton 的大作中提到: 】 : fu_hao_biao[i].yyh.push_back(hang); : 还是先把这个改过来吧。。。 该成什么样子啊? ☆─────────────────────────────────────☆ NotGo (不靠谱||看门老头[路-右]) 于 (Thu Jul 16 16:30:58 2009) 提到: 呀~~失误了~~ 为什么不用break呢? 【 在 LoveRose 的大作中提到: 】 : 她写的是i = -2..... ☆─────────────────────────────────────☆ LoveRose (江南西道|Movie) 于 (Thu Jul 16 16:31:02 2009) 提到: 弱问下怎么改。。。。。 【 在 winton (win小分队|TT) 的大作中提到: 】 : fu_hao_biao[i].yyh.push_back(hang); : 还是先把这个改过来吧。。。 ☆─────────────────────────────────────☆ LoveRose (江南西道|Movie) 于 (Thu Jul 16 16:31:15 2009) 提到: 我也是这么想的。。。 【 在 NotGo (不靠谱||看门老头[路-右]) 的大作中提到: 】 : 呀~~失误了~~ : 为什么不用break呢? ☆─────────────────────────────────────☆ yeahivan (日月花草相依伴) 于 (Thu Jul 16 16:31:20 2009) 提到: 【 在 NotGo 的大作中提到: 】 : 呀~~失误了~~ : 为什么不用break呢? 习惯问题吧。。学的时候老师就不让我们用break。。 ☆─────────────────────────────────────☆ DH (永远的伊谢尔伦) 于 (Thu Jul 16 16:33:06 2009) 提到: 【 在 LoveRose 的大作中提到: 】 : 弱问下怎么改。。。。。 我也很好奇…… ☆─────────────────────────────────────☆ Shinro (迷茫茫的孩子) 于 (Thu Jul 16 16:33:45 2009) 提到: 【 在 winton 的大作中提到: 】 : fu_hao_biao[i].yyh.push_back(hang); : 还是先把这个改过来吧。。。 我怎么觉得他这里这个没问题了呢 ☆─────────────────────────────────────☆ yeahivan (日月花草相依伴) 于 (Thu Jul 16 16:33:57 2009) 提到: 【 在 DH 的大作中提到: 】 : 还有就是我不太明白,因为用c比c++多 : 那个dan_ci,是一个结构,不是指针,那么每次push_back的时候,岂不是都将同样一个内存地址,不断修改了里面的值,然后增加到迭代器中? : 反正类似的问题我在c中都是定义一个指针,然后每次要加入时都要重新malloc一个空间然后保存数据然后加入到链表中,直接用结构不行。 : ................... 不会,vector里用push_back就是自动插到队尾的。 ☆─────────────────────────────────────☆ NotGo (不靠谱||看门老头[路-右]) 于 (Thu Jul 16 16:34:46 2009) 提到: 不让用,真是令人费解~~~ goto不让用还可以理解~ 算了,我还是不凑热闹了~~ .net我会比较清晰点,c++有点不太明白~ 【 在 yeahivan 的大作中提到: 】 : 习惯问题吧。。学的时候老师就不让我们用break。。 ☆─────────────────────────────────────☆ ki (谁) 于 (Thu Jul 16 16:35:34 2009) 提到: 我想说三点.... 第一,if 后面的条件为什么要加两重括号 第二,m 呢? m 在哪里啊 m 在哪里? 第三,也是最重要的一点.....这些个变量名真的是好丑好丑啊............ ☆─────────────────────────────────────☆ NotGo (不靠谱||看门老头[路-右]) 于 (Thu Jul 16 16:37:07 2009) 提到: 代码确实写得不漂亮,半天没理解楼主这个函数是要干啥 【 在 ki 的大作中提到: 】 : 我想说三点.... : 第一,if 后面的条件为什么要加两重括号 : 第二,m 呢? m 在哪里啊 m 在哪里? : ................... ☆─────────────────────────────────────☆ ki (谁) 于 (Thu Jul 16 16:37:12 2009) 提到: 你们老师太不专业了.............. 【 在 yeahivan 的大作中提到: 】 : 习惯问题吧。。学的时候老师就不让我们用break。。 ☆─────────────────────────────────────☆ yeahivan (日月花草相依伴) 于 (Thu Jul 16 16:37:41 2009) 提到: 【 在 ki 的大作中提到: 】 : 我想说三点.... : 第一,if 后面的条件为什么要加两重括号 : 第二,m 呢? m 在哪里啊 m 在哪里? : ................... 刚刚修改过的,还没有整理,因为一直不对。。 ☆─────────────────────────────────────☆ Shinro (迷茫茫的孩子) 于 (Thu Jul 16 16:41:13 2009) 提到: 【 在 yeahivan 的大作中提到: 】 : 刚刚修改过的,还没有整理,因为一直不对。。 你怎么判断的插入值有问题啊 ☆─────────────────────────────────────☆ yeahivan (日月花草相依伴) 于 (Thu Jul 16 16:42:55 2009) 提到: 【 在 Shinro 的大作中提到: 】 : 你怎么判断的插入值有问题啊 因为打印出来的值不对啊。 ☆─────────────────────────────────────☆ Shinro (迷茫茫的孩子) 于 (Thu Jul 16 16:44:32 2009) 提到: 【 在 yeahivan 的大作中提到: 】 : 因为打印出来的值不对啊。 晕。。。 贴打印语句出来看看 ☆─────────────────────────────────────☆ LoveRose (江南西道|Movie) 于 (Thu Jul 16 16:44:45 2009) 提到: 难说啊。。。。push_back函数肯定不会错的,也许是逻辑上的问题。。。 【 在 yeahivan (日月花草相依伴) 的大作中提到: 】 : 因为打印出来的值不对啊。 ☆─────────────────────────────────────☆ ki (谁) 于 (Thu Jul 16 16:46:54 2009) 提到: 按照 lz 的思路这样就行了吧.....我没仔细去看..... void fuhaobiao(words reg) { ji_lu dan_ci; for(int i=0;i<fu_hao_biao.size();i++) if((strcmp(reg.value,fu_hao_biao[i].nam)==0)) { fu_hao_biao[i].yyh.push_back(hang); return; } strcpy(dan_ci.nam,reg.value);//变量名赋值 dan_ci.ptr=i;//入口指针赋值 dan_ci.yyh.push_back(hang);//引用行赋值 fu_hao_biao.push_back(dan_ci);//插入到向量中 } ☆─────────────────────────────────────☆ DH (永远的伊谢尔伦) 于 (Thu Jul 16 16:48:57 2009) 提到: 【 在 ki 的大作中提到: 】 : 按照 lz 的思路这样就行了吧.....我没仔细去看..... : void fuhaobiao(words reg) : { : ................... 不对,你把i变成for里面声明的,后面就没办法用了 应该是dan_ci.ptr=fu_hao_biao.size(); ☆─────────────────────────────────────☆ NotGo (不靠谱||看门老头[路-右]) 于 (Thu Jul 16 16:50:11 2009) 提到: 我改写了下: struct Record { char name[20]; //变量名 int address; //目标地址 int typeID; //类型编号 int dimension; //维数 vector<int> refVector;//引用行 int inptr; // 入口指针 }; vector<Record> sTable; int hang=0;//一直是0?? void Fuhaobiao(words reg) { int index = 0; int number = 0;//从来没用到过?? bool tag = fale; while(index < sTable.Size()) { Record record = sTable[index]; if( strcmp(reg.value,record.name)==0) { record.refVector.push_back(hang); tag = true; break; } index ++; } if(!tag) { Record singleWord; strcpy(singleword.name,reg.value); singleWord.inptr = sTable.Size(); singleWord.refVector.push_back(hang); sTable.push_back(singleWord); } } ☆─────────────────────────────────────☆ yeahivan (日月花草相依伴) 于 (Thu Jul 16 16:50:12 2009) 提到: 【 在 ki 的大作中提到: 】 : 按照 lz 的思路这样就行了吧.....我没仔细去看..... : void fuhaobiao(words reg) : { : ................... 恩,问题解决了。谢谢大家关注,这段代码没问题,是别的函数的问题。。再次感谢大家啦~~~ ☆─────────────────────────────────────☆ ki (谁) 于 (Thu Jul 16 16:51:20 2009) 提到: 咳.....通常情况都是酱紫滴........ 让我不禁想起昨天 linux 版上那个贴子了........... ☆─────────────────────────────────────☆ NotGo (不靠谱||看门老头[路-右]) 于 (Thu Jul 16 16:52:49 2009) 提到: 呃~~我还兴致勃勃的改写代码~~也没发现什么问题~~ ☆─────────────────────────────────────☆ DH (永远的伊谢尔伦) 于 (Thu Jul 16 16:53:51 2009) 提到: 【 在 NotGo 的大作中提到: 】 : 呃~~我还兴致勃勃的改写代码~~也没发现什么问题~~ patpat 改完看起来特别舒服~ ☆─────────────────────────────────────☆ LoveRose (江南西道|Movie) 于 (Thu Jul 16 16:54:15 2009) 提到: == 【 在 ki (谁) 的大作中提到: 】 : 咳.....通常情况都是酱紫滴........ : 让我不禁想起昨天 linux 版上那个贴子了........... ☆─────────────────────────────────────☆ NotGo (不靠谱||看门老头[路-右]) 于 (Thu Jul 16 16:55:39 2009) 提到: 谢谢哇~~当年凭着标准的代码结构成功唬住带我做毕设的研究生~~其实最终我代码什么事都没做,就通过了毕业设计~~ 【 在 DH 的大作中提到: 】 : patpat 改完看起来特别舒服~ ☆─────────────────────────────────────☆ LoveRose (江南西道|Movie) 于 (Thu Jul 16 16:56:37 2009) 提到: 改了名字看得就是舒服。。。 【 在 NotGo (不靠谱||看门老头[路-右]) 的大作中提到: 】 : 我改写了下: : struct Record : { : ................... ☆─────────────────────────────────────☆ DH (永远的伊谢尔伦) 于 (Thu Jul 16 16:56:46 2009) 提到: 【 在 NotGo 的大作中提到: 】 : 谢谢哇~~当年凭着标准的代码结构成功唬住带我做毕设的研究生~~其实最终我代码什么事都没做,就通过了毕业设计~~ <----毕设做的代码分析,全阅读,无编码,特别水。 ☆─────────────────────────────────────☆ NotGo (不靠谱||看门老头[路-右]) 于 (Thu Jul 16 16:59:10 2009) 提到: 呵呵~~其实真的代码分析也是很困难的~~ 看些标准代码库还比较舒服,碰到代码写的乱的人,基本就疯掉了~ 【 在 DH 的大作中提到: 】 : <----毕设做的代码分析,全阅读,无编码,特别水。 ☆─────────────────────────────────────☆ DH (永远的伊谢尔伦) 于 (Thu Jul 16 17:01:46 2009) 提到: 【 在 NotGo 的大作中提到: 】 : 呵呵~~其实真的代码分析也是很困难的~~ : 看些标准代码库还比较舒服,碰到代码写的乱的人,基本就疯掉了~ 这学期一直在看开源软件qugga的代码,特别舒服~只不过全是c……我要学c++啊~! ☆─────────────────────────────────────☆ ki (谁) 于 (Thu Jul 16 17:03:51 2009) 提到: 【 在 NotGo 的大作中提到: 】 : 谢谢哇~~当年凭着标准的代码结构成功唬住带我做毕设的研究生~~其实最终我代码什么事都没做,就通过了毕业设计~~ [upload=1][/upload] ☆─────────────────────────────────────☆ NotGo (不靠谱||看门老头[路-右]) 于 (Thu Jul 16 17:05:22 2009) 提到: 嘿嘿~~我是按 c#标准些的~~ms的标准~ 【 在 ki 的大作中提到: 】 :
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。