标题:后置自增操作符号哪里使用错了。
只看楼主
未未来
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:182
专家分:157
注 册:2012-11-6
结帖率:94.87%
 问题点数:0 回复次数:7 
后置自增操作符号哪里使用错了。
程序代码:
#include<iostream>
#include<string>
#include<vector>
using namespace::std;
int main(){

 vector<string*>vec;

 string str;

 cout<<"Enter some string ,"<<endl;

 while(cin>>str){
     string *st= new string;
     *st=str;
     vec.push_back(st);

 }    
vector<string*>::iterator iter=vec.begin();
while(iter!=vec.end()){
cout<<**iter++<<"   "<<(**iter++).size()<<endl;
;
}
while(iter!=vec.end()){
    
delete *iter++;

}
return 0;
}
搜索更多相关主题的帖子: vector 
2013-02-18 23:38
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:0 
cout<<**iter++<<"   "<<(**iter++).size()<<endl;
加了又加?

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-02-19 08:19
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
提个问题这么难?这是幼儿园就应该学会的技能,现在好多大学生提问时怎么无前后文、又前言不搭后语,就像在梦游一般?

“后置自增操作符号哪里使用错了。”
----- 第一,你这段代码怎么错了,你先得描述一下错误现象,比如 这段代码无法编译通过,报某某行某某错误;又或 这段代码编译出的程序运行时报错,运行时输入的数据是什么什么。
第二,你确定你这段代码引发的错误(比如上述的编译错误或运行错误)是由于自增操作符号使用错了?我不明白你为什么要给自己下套子

程序代码:
#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main()
{
    vector<string*> vec;

    for( string str; cin>>str; )
    {
        string* st = new string;
        st->swap( str );
        vec.push_back( st );
    }
   

    for( vector<string*>::const_iterator itor=vec.begin(); itor!=vec.end(); ++itor )
        cout << **itor << "   " << (**itor).size() << endl;

    for( vector<string*>::iterator itor=vec.begin(); itor!=vec.end(); ++itor )
        delete *itor;

    return 0;
}

2013-02-19 09:13
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:0 
以下是引用rjsp在2013-2-19 09:13:35的发言:

提个问题这么难?这是幼儿园就应该学会的技能,现在好多大学生提问时怎么无前后文、又前言不搭后语,就像在梦游一般?

“后置自增操作符号哪里使用错了。”
----- 第一,你这段代码怎么错了,你先得描述一下错误现象,比如 这段代码无法编译通过,报某某行某某错误;又或 这段代码编译出的程序运行时报错,运行时输入的数据是什么什么。
第二,你确定你这段代码引发的错误(比如上述的编译错误或运行错误)是由于自增操作符号使用错了?我不明白你为什么要给自己下套子

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main()
{
    vector<string*> vec;

    for( string str; cin>>str; )
    {
        string* st = new string;
        st->swap( str );
        vec.push_back( st );
    }
   

    for( vector<string*>::const_iterator itor=vec.begin(); itor!=vec.end(); ++itor )
        cout << **itor << "   " << (**itor).size() << endl;

    for( vector<string*>::iterator itor=vec.begin(); itor!=vec.end(); ++itor )
        delete *itor;

    return 0;
}


淡定,现在提问题的都是爹...
人家觉得我们就该跟在屁股后面求着他提问题...

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-02-19 11:32
未未来
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:182
专家分:157
注 册:2012-11-6
得分:0 
回复 2楼 peach5460
谢谢, 问题已经解决了。,
2013-02-19 16:36
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
得分:0 
回复 楼主 未未来
是不是在释放内存的时候,迭代器没有重新指向vec.begin()啊

人生是一场错过 愿你别蹉跎
2013-02-19 16:59
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
得分:0 
曾分啦

仰望星空...........不忘初心!
2013-02-19 17:11
两条线223
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-3-5
得分:0 
新手来看看哈哈
2013-03-05 21:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-398764-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.456605 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved