当前位置: 首页 > news >正文

网站主页设计收费盐城网站建设24gx

网站主页设计收费,盐城网站建设24gx,室内展厅设计公司,电脑网页打不开但是有网什么原因问题: C 因项目需求,需要将0~2的32次方这个区间的数字保存到内存当中(内存大小为4G),并且可以实现对任意一个数字的增删。(先叙述设计思路,再写岀代码) 解答 设计思路代码实现说明 为了在有限的内存(4GB)中存储和操作 …

问题: C++ 因项目需求,需要将0~2的32次方这个区间的数字保存到内存当中(内存大小为4G),并且可以实现对任意一个数字的增删。(先叙述设计思路,再写岀代码)

解答

  • 设计思路
  • 代码实现
  • 说明

为了在有限的内存(4GB)中存储和操作 0 到 2^32-1 之间的所有数字,我们需要考虑数据结构和存储策略。由于32位整数的范围很大(4,294,967,296 个可能的数字),我们需要一个高效的方式来存储和操作这些数字。在这种情况下,位图(bitmap)是一个合适的选择。

设计思路

  1. 位图(Bitmap)

    • 使用位图来表示数字的存在与否,每一个位(bit)对应一个数字。
    • 位图的大小需要 2^32 bits(约 512MB),因为每个数字占用1 bit。
  2. 内存分配

    • 4GB内存足够容纳整个位图。
    • 位图可以使用std::vector<uint8_t>来表示,每个uint8_t包含8个bit。
  3. 增删操作

    • 增加数字时,将对应位置的bit设置为1。
    • 删除数字时,将对应位置的bit设置为0。
  4. 辅助函数

    • 设置位函数:设置特定位置的bit为1。
    • 清除位函数:设置特定位置的bit为0。
    • 查询位函数:检查特定位置的bit是0还是1。

代码实现

#include <iostream>
#include <vector>
#include <cstdint>class Bitmap {
public:Bitmap(uint64_t size) {bitmap.resize((size + 7) / 8); // 每8个bit为1个byte}// 添加数字void add(uint32_t num) {bitmap[num / 8] |= (1 << (num % 8));}// 删除数字void remove(uint32_t num) {bitmap[num / 8] &= ~(1 << (num % 8));}// 检查数字是否存在bool contains(uint32_t num) const {return bitmap[num / 8] & (1 << (num % 8));}private:std::vector<uint8_t> bitmap;
};int main() 
{Bitmap bitmap(1ULL << 32); // 创建一个包含 2^32 位的位图// 测试添加和删除数字uint32_t num = 123456789;bitmap.add(num);std::cout << "Contains " << num << "? " << (bitmap.contains(num) ? "Yes" : "No") << std::endl;bitmap.remove(num);std::cout << "Contains " << num << "? " << (bitmap.contains(num) ? "Yes" : "No") << std::endl;return 0;
}

说明

  1. Bitmap类

    • bitmap使用std::vector<uint8_t>存储位图数据。
    • add方法将对应的bit设置为1。
    • remove方法将对应的bit设置为0。
    • contains方法检查对应的bit是否为1。
  2. main函数

    • 创建一个Bitmap对象,大小为2^32位。
    • 测试添加和删除数字操作。

这种方法利用位图的高效性和位操作的快速性,在有限的内存中实现对大量数据的存储和操作。

http://www.yayakq.cn/news/507734/

相关文章:

  • discuz做资讯网站广西壮族自治区市场监督管理局官网
  • 自己做网站都要什么手续做网站需要有服务器
  • 哪个网站域名便宜科技网站建设+长沙
  • 海珠免费网站建设中职电子商务专业就业方向
  • 运营一个网站要多少钱s上海网站建设
  • 连云港做网站哪里好网站搭建分站需要多少钱
  • 百度提交入口网站网址行业门户网站大全
  • 网站公司维护网站空间多少
  • 做网站多少分辨率好著名的国外设计网站
  • wordpress自定义排版seo网站编辑
  • wordpress评论 ajaxwordpress神马优化
  • 中国建设银行幼儿缴费官网站深互动平台网站
  • 广州车陂网站建设中心怎样免费注册域名
  • 高端品牌鞋子潍坊外贸网站优化
  • 河北中瑞建设集团有限公司网站电子印章制作生成免费
  • 做网站比特币钱包秦皇岛昌黎县建设局网站
  • 扬州网站建设 开元本地工程招标网
  • 陕西省建设监理工程协会网站手机设计软件免费
  • 一般网站开发用什么笔记本东莞如何建网站费用
  • 专业做化学招聘的网站有哪些f式布局网站
  • 网站开发简历项目WordPress底部添加音乐
  • 网盘做电子书下载网站外呼系统电销
  • 如何建立公司网站模块百度 手机网站 收录
  • 怎么改版网站定制软件公司
  • 女性开源网站前端程序员工资一般多少
  • 西安做网站费用站酷设计网站官网未上色文件
  • 海拉尔网站设计android用什么语言开发
  • 品牌网站制作选哪家开发的某网站建设公司网站源码
  • 兰溪做网站韩国在中国做美食的视频网站有哪些
  • 头像在线制作网站做网站推广的公司好做吗