标题:push_back的问题
只看楼主
小亦庄葛三娘
Rank: 1
等 级:新手上路
帖 子:24
专家分:5
注 册:2016-10-23
结帖率:25%
已结贴  问题点数:10 回复次数:4 
push_back的问题
程序代码:
int main()
{   
    vector<int> ivec;
    int ival, sum = 0;
    while(cin >> ival)
        ivec.push_back(ival);
        
    for(int ix = 0; ix < ivec.size(); ++ix)
        
        sum += ivec[ix];
        
    int average = sum / ivec.size();
    
    cout << "sum of " << ivec.size() << " elements: " << sum << ". average: " << average << endl;
    
    return 0;
}


请问这一行的作用是什么ivec.push_back(ival;为什么这一行是必须的;我试图删除了这行,打印出sum和average的结果都是0.
搜索更多相关主题的帖子: average 
2017-03-09 15:20
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:5 
好奇怪的问题
2017-03-09 15:31
Erlosshex
Rank: 2
等 级:论坛游民
威 望:1
帖 子:17
专家分:10
注 册:2014-5-24
得分:5 
首先你申明了一个名为ivec的容器元素是int的vector容器,ivec.push_back(ival)是将ival插入到ivec容器里,如果没有这个函数的,容器ivec就是空的,所以你要往ivec里存入元素而且是在ivec的后面插入,那么就需要push_back函数。
2017-03-09 15:37
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
程序代码:
#include <iostream>
#include <vector>
using namespace std ;

int main( void )
{  
    vector<int> vec;
    for( int val; cin>>val; )
        vec.push_back( val );

    int sum = 0;
    for( size_t i=0; i!=vec.size(); ++i )
        sum += vec[i];

    double avg = vec.empty() ? 0.0 : sum*1.0/vec.size();

    cout << "count   = " << vec.size() << '\n';
    cout << "sum     = " << sum << '\n';
    cout << "average = " << avg << endl;

    return 0;
}

程序代码:
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <numeric>
using namespace std;

int main( void )
{  
    vector<int> vec;
    copy( istream_iterator<int>(cin), istream_iterator<int>(), back_inserter(vec) );

    int sum = accumulate( vec.begin(), vec.end(), int() );

    double avg = vec.empty() ? 0.0 : sum*1.0/vec.size();

    cout << "count   = " << vec.size() << '\n';
    cout << "sum     = " << sum << '\n';
    cout << "average = " << avg << endl;

    return 0;
}
2017-03-09 15:49
小亦庄葛三娘
Rank: 1
等 级:新手上路
帖 子:24
专家分:5
注 册:2016-10-23
得分:0 
回复 3楼 Erlosshex
明白了,多谢
2017-03-10 13:56



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




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

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