C++ 通用工具模块实现
本模块包含项目中通用的工具函数,供其他部分复用。
1. FileUtil
该类用于读取文件内容。从指定路径按行读取文件并追加到传入字符串指针中,返回操作是否成功。
class FileUtil {
public:
static bool ReadFile(const std::string &file_path, std::string *out) {
std::ifstream in(file_path, std::ios::in | std::ios::binary);
if (!in.is_open()) {
std::cout << "open file " << file_path << ": error" << std::endl;
return false;
}
std::string line;
while (std::getline(in, line)) {
*out += line;
}
in.close();
return true;
}
};
2. StringUtil
提供字符串分割功能,支持自定义分隔符。
class StringUtil {
public:
// target 是要切分的目标,out 是结果容器,sep 是分隔符
static void Split(const std::string& target, std::vector<std::string>* out, std::string sep) {
boost::split(*out, target, boost::is_any_of(sep), boost::token_compress_on);
}
};
3. JiebaUtil
封装了 cppjieba 分词库的接口。使用静态成员变量确保分词器实例在程序运行期间只初始化一次,提高性能并保证词典数据一致性。
为什么使用 static?
- :初始化成本较高,只需一个实例。静态修饰可避免重复创建对象,共享同一实例。


