代码拉取完成,页面将自动刷新
#pragma once
#include <iostream>
#include <vector>
#include <string>
#include <fstream>
#include <boost/algorithm/string.hpp>
#include <mutex>
#include <unordered_map>
#include "Cppjieba/Jieba.hpp"
namespace ns_util
{
//读取文件内容
class FileUtil
{
public:
//第一个参数:该文件的路径 第二个参数:输出型参数,读到的文件内容返回出去
static bool ReadFile(const std::string &file_path, std::string *out)
{
std::ifstream in(file_path, std::ios::in); //in表示读取
if(!in.is_open()) //判断是否打开成功
{
std::cerr << "open file " << file_path << " error" << std::endl;
return false;
}
//文件读取
std::string line; //line保存的就是读取到的一行内容
while(std::getline(in, line))
{
*out += line;
}
in.close(); //关闭文件
return true;
}
};
//字符串切分
class StringUtil //进行字符串切分
{
public:
//第一个参数:切分谁 第二个参数: 切分好的内容放到哪里 第三个参数:以什么为分隔符切分
static void Split(const std::string &target, std::vector<std::string> *out, const std::string &sep)
{
//is_any_of表示:凡是在这个里面的任何一个字符都作为原始字符串当中的分隔符
//第一个参数:保存在哪里 第二个参数:数据源 第三个:分隔符
//第四个参数:分隔符和分隔符之间的内容是否进行压缩
boost::split(*out, target, boost::is_any_of(sep), boost::token_compress_on);
}
};
//jieba分词
const char* DICT_PATH = "cppjieba/dict/jieba.dict.utf8";
const char* HMM_PATH = "cppjieba/dict/hmm_model.utf8";
const char* USER_DICT_PATH = "cppjieba/dict/user.dict.utf8";
const char* IDF_PATH = "cppjieba/dict/idf.utf8";
const char* STOP_WORD_PATH = "cppjieba/dict/stop_words.utf8";
class JiebaUtil
{
private:
static cppjieba::Jieba _jieba;
public:
static void CutString(const std::string& src, std::vector<std::string>* out)
{
_jieba.CutForSearch(src, *out);
}
};
cppjieba::Jieba JiebaUtil::_jieba(DICT_PATH, HMM_PATH, USER_DICT_PATH, IDF_PATH, STOP_WORD_PATH);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。