| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1592 人关注过本帖
标题:想了很久,就是想不明白哪里出错了,关于find count函数的,基础代码
只看楼主 加入收藏
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
想了很久,就是想不明白哪里出错了,关于find count函数的,基础代码
程序代码:
#include <iostream>
#include<vector>
#include<string_view>
#include<array>
#include<algorithm>
using namespace std;

 struct Man

 { string_view a{};
    int grad{};

 };

 struct arrayW

 {
   vector<Man>arra{};//变成一个数组
 };

 bool strnum(string_view str)

 {
     return (str.find("jk") != std::string_view::npos);//查找字符
 }
int main()
{

    arrayW arrau;//{1,67,2,34,3,78};
     arrau.arra. resize(3);
     arrau.arra[0]={" kjk",67};//输入数组
    arrau.arra[1]={" dfd",671};
    arrau.arra[2]={" fdd",673};

  for(auto tem:arrau.arra)
    {cout<<" "<<tem.a<<" "<<tem.grad<<"  ";
  }
auto found={find_if(arrau.arra.begin(),arrau.arra.end(),strnum)};//返回发现的结果
auto countnum={count_if(arrau.arra.begin(),arrau.arra.end(),strnum)};//在第几位被发现
if(found==arrau.arra.end())//这里有错误
     {cout<<"未识别";
   }
else
{
    cout<<*found;
    cout<countnum;
}

}


变成结构体的就有点晕
搜索更多相关主题的帖子: include end cout find 出错 
2020-04-02 10:01
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:20 
程序代码:
#include <iostream>
#include <vector>
#include <string_view>
#include <array>
#include <algorithm>
using namespace std;

struct Man
{
    std::string_view a;
    int grad;
};

struct arrayW
{
    vector<Man>arra;
};

bool strnum( const Man& str)
{
    return (str.a.find("jk") != std::string_view::npos);
}

int main()
{
    arrayW arrau;
    arrau.arra.resize(3);
    arrau.arra[0] = { " kjk",67 };
    arrau.arra[1] = { " dfd",671 };
    arrau.arra[2] = { " fdd",673 };

    for (auto tem : arrau.arra)
    {
        cout << " " << tem.a << " " << tem.grad << endl;
    }
    auto found = find_if(arrau.arra.begin(),arrau.arra.end(),strnum);
    auto countnum = count_if(arrau.arra.begin(),arrau.arra.end(),strnum);
    if (found == arrau.arra.end())
    {
        cout << "未识别";
    }
    else
    {
        cout << found->a << endl;
        cout << countnum << endl;
    }
}
2020-04-02 11:05
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
啊,找了半小时,最让我无语的是初始化的时候
auto found={find_if(arrau.arra.begin(),arrau.arra.end(),strnum)};
居然不能加=号,最最最让我无语的是我cout还少打印一个<
难以置信的是:我看来那么多遍居然一次都没发现,

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-04-02 12:29
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
大大,谢谢你,之前看见很多人会写->,一直不明白这是什么意思,今天明白了,如果按照我的代码写我估计会写
(*found).a,根本就想不到这个类似箭头的符号,感谢您的耐心指导

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-04-02 13:45
快速回复:想了很久,就是想不明白哪里出错了,关于find count函数的,基础代码
数据加载中...
 
   



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

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