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

实习冲刺练习 第二十一天

每日一题

最长公共前缀. - 力扣(LeetCode)

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        if(strs.size()==0) return "";//没有字符
        string str;//记录公共部分
        for(int i = 0;i<strs[0].size();i++){//从左往右遍历第一个字符串
            char c = strs[0][i];//记录第i位的字符
            str.push_back(c);
            for(int j = 1;j<strs.size();j++){//遍历剩下的字符串的第i位字符
                if(strs[j][i]!=c||i == strs[j].size()){//如果不相同,或者其中一个字符串先走完结束
                    str.erase(i);//删除最后一个
                    return str;//返回公共部分
                };
            }
        }
        return str;
    }
};

八股

C++函数的返回值在内存中的传递过程

  • 简单类型返回值:通过寄存器传递,可能在栈上存储。
  • 复杂对象返回值:如果没有使用移动语义或RVO,会通过拷贝构造;如果有使用移动语义,则通过移动构造。
  • 动态分配内存的返回值:通常是返回指针,调用者负责内存管理。

什么是虚拟内存,为什么要使用虚拟内存,虚拟内存可能比物理内存大吗

什么是虚拟内存?

虚拟内存(Virtual Memory)是一种计算机内存管理技术,它允许操作系统将程序的内存地址空间映射到物理内存或硬盘存储的空间。换句话说,虚拟内存为每个运行中的程序提供了一个独立的、连续的内存地址空间,尽管物理内存的大小可能远小于程序所需的内存总量。

为什么要使用虚拟内存?

  1. 内存隔离与保护
  2. 进程透明性
  3. 有效利用内存
  4. 支持多任务处理
  5. 内存映射文件

虚拟内存可能会比物理内存大,原因在于操作系统使用了一种称为“分页”或“交换”的技术。


http://www.kler.cn/a/393397.html

相关文章:

  • Django基础用法+Demo演示
  • 前端常用布局模板39套,纯CSS实现布局
  • MyBatis CRUD快速入门
  • ISAAC SIM踩坑记录--ubuntu 22.04操作系统安装
  • PYNQ 框架 - 中断(INTR)驱动
  • Elasticsearch(ES)简介
  • Android Framework AMS(16)进程管理
  • Qt第三课 ----------布局
  • 国内AI工具复现GPTs效果详解
  • vue文本高亮处理
  • 【Git】如何在 Git 项目中引用另一个 Git 项目:子模块与子树合并
  • 学习threejs,导入STL格式的模型
  • 【Linux】ELF可执行程序和动态库加载
  • CSS高级技巧_精灵图_字体图标_CSS三角_vertical-align(图像和文字居中在同一行)_溢出文字省略号显示
  • 随机森林(Random Forest)算法Python代码实现
  • 数据量大Excel卡顿严重?选对报表工具提高10倍效率
  • 同三维T85HU HDMI+USB摄像机多路多机位手机直播采集卡
  • 浅析pytorch中的常见函数和方法
  • 128.WEB渗透测试-信息收集-ARL(19)
  • DDE(深度桌面环境) Qt 6.8 适配说明
  • 嵌入式开发套件(golang版本)
  • 昇思大模型平台打卡体验活动:项目6基于MindSpore通过GPT实现情感分类
  • 力扣662:二叉树的最大宽度
  • Java面向对象编程进阶之包装类
  • Python---re模块(正则表达式)
  • 快递鸟快递查询API接口参数代码