| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1287 人关注过本帖
标题:暑假作业里有一道题一点头绪也没有,求帮忙
只看楼主 加入收藏
根根本根
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:64
专家分:15
注 册:2018-3-19
结帖率:62.5%
收藏
已结贴  问题点数:20 回复次数:9 
暑假作业里有一道题一点头绪也没有,求帮忙
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 作业 头绪 
2018-08-30 14:08
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:20 
程序代码:
#include <iostream>
#include <algorithm>
#include <iterator>
#include <string>
using namespace std;

int main( void )
{
    size_t n;
    string buf[20];

    // 输入
    cin >> n;
    copy_n( istream_iterator<string>(cin), n, buf );

    // 排序
    sort( buf, buf+n, [](const string& a, const string& b){return a+b>b+a;} );

    // 输出
    copy( buf, buf+n, ostream_iterator<string>(cout,"") ) = "\n";
}


2018-08-30 14:44
根根本根
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:64
专家分:15
注 册:2018-3-19
收藏
得分:0 
copy_n和copy是什么呀我还没学过呢
而且sort的这种用法也没学过
2018-08-30 14:47
根根本根
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:64
专家分:15
注 册:2018-3-19
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2018-08-30 14:50
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
回复 3楼 根根本根
那只好这样了:
程序代码:
#include <iostream>
#include <algorithm>
#include <iterator>
#include <string>
using namespace std;

bool cmp( const string& a, const string& b )
{
    return a+b > b+a;
}

int main( void )
{
    size_t n;
    string buf[20];

    // 输入
    cin >> n;
    for( size_t i=0; i!=n; ++i )
        cin >> buf[i];

    // 排序
    sort( buf, buf+n, &cmp );

    // 输出
    for( size_t i=0; i!=n; ++i )
        cout << buf[i];
    cout << endl;
}

2018-08-30 14:51
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
回复 4楼 根根本根
从截图上看,IDE用的是古老的dev-cpp,编译器用的是古老的gcc4.8.1,编译参数也不加 -std=c++11
现在Windows上mingw已经是8.1.0版本了
2018-08-30 14:56
根根本根
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:64
专家分:15
注 册:2018-3-19
收藏
得分:0 
#include <bits/stdc++.h>
using namespace std;
bool cmp(string a,string b ) {
    return a+b > b+a;
}
int main( void ) {
    int n;
    string buf[20];
    cin >> n;
    for( int i=0; i<n; i++ ) {
        cin >> buf[i];
    }
    sort( buf, buf+n, cmp );
    for( int i=0; i<n; i++ ) {
        cout << buf[i];
    }
    return 0;
}
这样也可以诶

那个size_t是不是就是int?
2018-08-30 15:09
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
你是说将 bool cmp( const string& a, const string& b ) 改为 bool cmp(string a,string b ) 的事吗?
那你觉得这两者差别在哪里?

size_t当然不是int,否则C++标准和C标准为什么要增加这种类型呢?
size_t 是C/C++标准中唯一可标识 对象尺寸、数组索引、循环计数 的类型,而其它类型标准都不作保证。
比如操作符 sizeof 的表达式类型就是 size_t,比如函数 strlen 的返回类型就是 size_t,比如 vector::operator[] 的参数类型(也就是索引)就是 size_t。
2018-08-30 15:47
旦井
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-9-18
收藏
得分:0 
2018-09-18 19:31
Jonny0201
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:52
帖 子:488
专家分:2603
注 册:2016-11-7
收藏
得分:0 
回复 7楼 根根本根
你需要好好了解一下 C/C++ 为什么要存在 size_t 这种型别
2018-09-18 20:19
快速回复:暑假作业里有一道题一点头绪也没有,求帮忙
数据加载中...
 
   



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

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