| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 552 人关注过本帖
标题:为什么 VC上这个都不行
只看楼主 加入收藏
诸葛修勤
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:549
专家分:1955
注 册:2010-10-28
结帖率:96.55%
收藏
已结贴  问题点数:20 回复次数:7 
为什么 VC上这个都不行
程序代码:
#include <iostream>
#include <vector>
#include <list>
using namespace std;

int main()
{
    vector<int> ivec(10, 3);
    list<double> ilist(ivec.begin(), ivec.end());

    typedef list<double>::const_iterator type;
    for (type in=ilist.begin(); in!=ilist.end(); ++in)
    {
        cout << *in << ' ';
    }
    cout << endl;

    return 0;
}
搜索更多相关主题的帖子: color 
2011-05-11 21:17
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:4 
程序代码:
#include <iostream>
#include <vector>
#include <list>
using namespace std;

int main()
{
    vector<int> ivec(10, 3); // 10 个3
    list<double> ilist(*(ivec.begin()), *(ivec.end()-1)); // 也就是list<double> ilist(3, 3);  即是3 个3

    typedef list<double>::const_iterator type;
    for (type in=ilist.begin(); in!=ilist.end(); ++in)
    {
        cout << *in << ' ';
    }
    cout << endl;

    return 0;
}
你要的是这个吧。 ivec.begin() 改成*(ivec.begin());
有点象指针
int b = 10;
int *p = &b; 取值时候,要 int a = *p; //而不是int a = p

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2011-05-11 23:39
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
收藏
得分:4 
说不行,你倒是说个怎么不行,然后去找原因,简单的一看就知道、复杂的跟踪到里面也就知道是怎么回事了。
LZ的代码没问题,通不过就是编译器的原因了。想继续学习那就升级编译器吧。

离恨恰如春草,更行更远还生。
2011-05-12 00:01
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:4 
回复 2楼 yuccn
不是那样子用
   1) vector<int> ivec(10, 3);//这是一种容器的构造函数
   2) list<double> ilist(ivec.begin(), ivec.end());//这是另一种容器的构造函数
第一种就不用说啦

第二种就是用迭代器[ivec.begin(), ivec.end())内元素的 复制一份到ilist中
虽然元素的类型int double 不同但是他们之间是可以默认转换的 所以不会造成问题

相信你的应该可以运行这样子的:
程序代码:
#include <iostream>
#include <vector>
#include <list>
using namespace std;

int main()
{
    vector<int> ivec(10, 3);
    list<int> ilist(ivec.begin(), ivec.end());

    typedef list<int>::const_iterator type;
    for (type in=ilist.begin(); in!=ilist.end(); ++in)
    {
        cout << *in << ' ';
    }
    cout << endl;

    return 0;
}


Linux下原代码没有问题 输出和上面的是一样的
2011-05-12 00:11
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
回复 楼主 诸葛修勤
和平台有关系
2011-05-12 00:12
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
回复 4楼 寒风中的细雨
谢谢评点。

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2011-05-12 00:38
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:4 
不行,你也给个说法呀,比如哪句编译不通过,报什么错?
支持3楼的回复
2011-05-12 08:47
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:4 
我也觉得代码什么问题。不知道楼主遇到的具体是什么问题?

vc 经常会遇到不少诡异的情况。这种时候百度很重要,因为那些情况问的人很多。
2011-05-12 11:13
快速回复:为什么 VC上这个都不行
数据加载中...
 
   



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

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