标题:把数组引用传参,sort不可以使用,请问哪里出错了呀
只看楼主
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
结帖率:100%
已结贴  问题点数:20 回复次数:5 
把数组引用传参,sort不可以使用,请问哪里出错了呀
程序代码:
#include <iostream>
#include<array>
#include<algorithm>
using namespace std;
void num(const array<int,5>&myarray)
{
    cout<<size(myarray);
   sort(myarray.begin(), myarray.end());//这里出错
    for(int i:myarray)
     {
        cout<<i;}
}
int main()
{
    array<int,5>myarray;
    myarray={1,2,33,5,77};
   num(myarray);
}

搜索更多相关主题的帖子: sort array 数组 出错 int 
2020-03-30 16:04
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
void num(const array<int,5>&myarray)
常量是不允许修改的,而 sort(myarray.begin(), myarray.end()) 却要求修改它。
2020-03-30 16:07
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
得分:0 
谢谢啦,按照您的意思去掉了就可以了

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-03-30 16:13
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
得分:0 
程序代码:
#include <iostream>
#include<array>
#include<algorithm>
using namespace std;
void num( array &myarray)
{
    cout<<size(myarray);
   sort(myarray.begin(), myarray.end());
    for(int i:myarray)
     {
        cout<<i;}
}
int main()
{
    array  myarray{1,2,33,5,77};

   num(myarray);
}
可是变成++17的格式就传参就不可以了

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-03-30 16:16
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
回复 4楼 叶纤
array myarray{1,2,33,5,77};
这个可以自动推导出 myarray 是 array<int,5> 类型


void num( array& myarray)
肯定不行呀,它怎么知道一定只有 array<int,5> 会传给它。
除非你把它写成模板形式
2020-03-30 16:48
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
得分:0 
了解了解,我以为array是个聚合类型的数据,直接引用就可以偷偷的看见array变量的每一个成员呢

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-03-30 17:14



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




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

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