高效编码习惯集锦


1. c++哈希后比较字符串效率更高

#include <iostream>
#include <string>
#include <functional>

int main() {
    std::string str1 = "hello";
    std::string str2 = "world";

    // 使用 std::hash 对字符串进行哈希
    std::hash<std::string> hasher;
    size_t hash1 = hasher(str1);
    size_t hash2 = hasher(str2);

    // 比较哈希值
    if (hash1 == hash2) {
        std::cout << "The two strings have the same hash value." << std::endl;
    } else {
        std::cout << "The two strings have different hash values." << std::endl;
    }

    return 0;
}

2. 通过按位操作实现更高效的算数

eg: 向下取64的倍数:

x & 0xFFFFFFC0

3. 按需使用write()fwrite()写文件

fwrite和write都是用于将数据写入文件的函数。它们的主要区别在于它们所属的编程语言和操作系统。fwrite()会有一个额外缓冲,当满足条件(例如缓冲区满)时才真正调用系统write(),可以减少系统调用频率,适用于小数据频繁写入;然而,当数据量大时,缓冲的存在反而影响效率,这时可直接调用系统write()

fwrite是C语言中的函数,用于将一块内存中的数据写入文件中,可以写入多个数据类型。它的语法如下:

size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);

其中,ptr是指向要写入的数据的指针,size是每个数据项的大小,count是要写入的数据项数,stream是指向要写入的文件的指针。下面是一个使用fwrite将一个整数写入文件的例子:

int num = 42;
FILE *fp = fopen("file.txt", "wb");
fwrite(&num, sizeof(int), 1, fp);
fclose(fp);

write是UNIX系统中的系统调用,用于将一块内存中的数据写入文件中,只能写入字符型数据。它的语法如下:

ssize_t write(int fd, const void *buf, size_t count);

其中,fd是文件描述符,buf是指向要写入的数据的指针,count是要写入的字节数。下面是一个使用write将一个字符串写入文件的例子:

char *str = "Hello, world!";
int fd = open("file.txt", O_WRONLY | O_CREAT, 0644);
write(fd, str, strlen(str));
close(fd);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值