| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 487 人关注过本帖
标题:关于返回vector
只看楼主 加入收藏
y605302737
Rank: 1
等 级:新手上路
帖 子:32
专家分:9
注 册:2013-2-2
结帖率:81.82%
收藏
已结贴  问题点数:20 回复次数:2 
关于返回vector
大家好,请教下如何返回一个vector类,我知道运行完read函数后,vector<float> arr_name的内存会释放掉,那我怎么写才对这个程序,另外我想读取的txt文件,我不知道文件中数据的数目,用while来判断是否读到文件尾这种方法行吗?
谢谢大家 !!
程序代码:
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
using namespace std;
vector<float> read(string name);

int main()
{
   
    vector<float> abc;
    yxz = read("yyy.txt");
    vector<float>::iterator p;
    for(p=yyy.begin();p!=yyy.end();p++)
    {
        cout<<"p =="<<*p<<endl;
     
    }

    return 0;
}

vector<float> read(string name)
{
    vector<float> arr_name;
    ifstream fin;
    fin.open("name");
    float value;
    while(!fin.eof())
    {
        fin>>value;
        cout<<"value =="<<value<<endl;
        arr_name.push_back(value);
    }
    fin.close();
    return arr_name;
}
    

 
搜索更多相关主题的帖子: 如何 
2013-06-19 19:40
y605302737
Rank: 1
等 级:新手上路
帖 子:32
专家分:9
注 册:2013-2-2
收藏
得分:0 
错误已改正,但还是有个问题要问下,为什么返回的arr_name在函数外还会存在,不是出在函数read后它的内存会被释放掉吗??请高手指点。
2013-06-19 21:09
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9026
专家分:54030
注 册:2011-1-18
收藏
得分:20 
错误和陋习很多
程序代码:
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
using namespace std;

vector<double> read( const char* name );

int main()
{
    vector<double> abc = read("yyy.txt");
    for( vector<double>::const_iterator itor=abc.begin(); itor!=abc.end(); ++itor )
    {
        cout << "p == " << *itor << endl;
    }

    return 0;
}

vector<double> read( const char* name )
{
    vector<double> arr_name;

    ifstream fin( name );
    for( double value; fin>>value; )
    {
        arr_name.push_back( value );
    }
    fin.close();

    return arr_name;
}

还可以
程序代码:
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
#include <iterator>
using namespace std;

int main()
{
    // 将文件 yyy.txt 的内容读进 vector<double> abc 中
    vector<double> abc( istream_iterator<double>(ifstream("yyy.txt")), istream_iterator<double>() );

    // 将 vector<double> abc 的内容输出到输出设备上
    copy( abc.begin(), abc.end(), ostream_iterator<double>(cout,"\n") );

    return 0;
}

2013-06-20 08:36
快速回复:关于返回vector
数据加载中...
 
   



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

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