草庐IT

面试结束

全部标签

c++ - 一些面试真题C++

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭11年前。所以我整理了一些我被问到的面试问题。我回答了一些,并记下了我无法回答的问题。有些问题不是特定于C的,而是一般性的。每个人都可以将他们的意见添加到问题中。没有义务遵循我写的答案!Q1:指针在2位系统和16位系统上的大小分别是多少?A:2bits2bytes问题2:为什么我们需要OOP/类,而在C中我们有结构并且可以实现相同的功能?A:留给SO用户来回答!问题3:如果让您将嵌入式系统的程序分成不同的

c++ - 使用 std::string 迭代器查找它的字符串的开始和结束

仅给定一个std::string迭代器,是否可以确定字符串的起点和终点?假设我无权访问字符串对象,因此无法调用string.begin()和string.end(),我所能做的就是递增或递减迭代器并测试值。谢谢,菲尔 最佳答案 简短的回答是否定的。长话短说,因为迭代器不应该知道正在迭代的容器或范围,所以他们只需要知道能够跳转到下一个元素(inc或dec到next或prev)取消对它们自己的引用,以揭示对它们所指向的值的引用当然,还要将自己与其他迭代器进行比较,最重要的是与某种“结束”迭代器进行比较。此外,某些类型的迭代器可能做的不仅

c++ - 为什么 range-for 找不到我对 std::istream_iterator 的开始和结束重载?

我有这样的代码std::ifstreamfile(filename,std::ios_base::in);if(file.good()){file.imbue(std::locale(std::locale(),newdelimeter_tokens()));for(auto&entry:std::istream_iterator(file)){std::cout哪里std::istream_iterator的begin()和end()定义如下templatestd::istream_iteratorbegin(std::istream_iterator&stream){returns

2023面试笔记四

1、gc导致的cpu冲高排查是否为gc导致,看如下两点:gc频率和耗时内存占用率(1)gc频率和耗时有两种手段看:第一种:根据gc日志的打印时间,可确定每次gc间隔的时间和耗时:使用这种方式的前提是配置了gc日志的打印,参考jvm参数如下:-XX:+PrintGCDetails-XX:+PrintGCDateStamps-XX:+PrintHeapAtGC-Xloggc:../../logs/gc.log第二种:使用如下命令,可每隔5s打印一次gc情况,从打印结果可以判断gc频率,在通过YGCT/YGC和FGCT/FGC可以计算出每次gc的耗时。jstat-gc5000Jstat是JDK自带的

【Kafka面试】Kafka数据清理机制了解过吗?

一、Kafka文件存储机制1.存储结构Kafka生产者通过topic发送数据,topic只是一个逻辑概念,真正存储数据的位置是分区,分区在broker机器上对应的是文件夹(topic名称-分区号)分区内部存储了数据文件,也是分段存储的。在一个分区下可能存在多个日志分区段(segment)每个段都对应了3个文件:.index索引文件、.log真正的数据文件、.timeindex时间索引文件2.为什么要分段?删除无用文件(已经被消费过很长时间的文件)更方便,提高磁盘利用率查找数据更便捷:如果消息量很大,全都存储在一个文件中,那么查找速度肯定会受限文件命名都是以偏移量进行命名的:查找数据时,肯定是知

C++线程问题——设置一个值表示线程已经结束

以下安全吗?我是线程处理的新手,我想将一个耗时的过程委托(delegate)给我的C++程序中的一个单独的线程。使用boost库,我编写了如下代码:thrd=newboost::thread(boost::bind(&myclass::mymethod,this,&finished_flag);finished_flag是我类(class)的bool成员。当线程完成时,它设置值,我的程序的主循环检查该值的变化。我认为这是可以的,因为我只启动一个线程,并且该线程是唯一改变值的东西(除了在我启动线程之前初始化它的时候)这样可以吗,还是我遗漏了什么,需要使用锁和互斥锁等

【学习笔记、面试准备】机器学习西瓜书要点归纳和课后习题参考答案——第3章

机器学习西瓜书要点归纳第3章线性模型3.1基本形式3.2线性回归3.3对数几率回归3.4线性判别分析3.5多分类学习3.6类别不平衡问题3.7阅读材料习题目录地址第3章线性模型3.1基本形式线性模型定义:其中x是输入向量优点:形式简单,易于建模,可解释性好。3.2线性回归输入预处理:连续值可以直接用,离散值若有序,可以按序赋值变连续(如“高,中,低”变为“1,0.5,0”,否则可以单热点码编码。回归常用MSE,要偏导数为0,当输入是一维时可以算出来:当多元时,矩阵求导,矩阵微分公式见南瓜书原理可见:链接当XTXX^TXXTX满秩,即可逆,可解得:当不满秩,有多解,常见是奥卡姆剃刀式引入正则化找

C/C++ 动态规划面试算法题

1.买卖股票的最佳时机https://blog.csdn.net/qq_41277628/article/details/113322136输入:[7,1,5,3,6,4]输出:5解释:在第2天(股票价格=1)的时候买入,在第5天(股票价格=6)的时候卖出,最大利润=6-1=5。注意利润不能是7-1=6,因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。1#include23#defineN645intmain()6{7intmin,temp;8inta[]={7,1,5,3,6,4};9min=a[0];10temp=0;11for(inti=0;itemp)18{19temp=a

[go 面试] 并行与并发的区别及应用场景解析

引言在现代计算领域,我们经常听说并行与并发这两个概念。它们都与任务处理有关,但具体又有哪些区别呢?本文将深入探讨并行与并发的区别,以及它们在不同场景下的应用。并行与并发的区别并行的定义与特点并行是指同时执行多个任务的能力。在并行计算中,多个任务可以同时进行,互不干扰。这种方式可以充分利用多核处理器等硬件资源,提高任务处理的效率。并发的定义与特点并发是指多个任务交替进行的能力。在并发处理中,多个任务按照时间片轮转的方式进行,每个任务都有一定的执行时间。并发可以提高系统的响应性和资源利用率。并行与并发的区别与联系并行与并发的主要区别在于任务的执行方式和资源需求。并行是同时执行多个任务,需要具备并行

C++ 面试必备:常见 C++ 面试题汇总及详细解析

C++作为一门重要的编程语言,其在面试中常常是热门的考察对象。本文将会介绍一些常见的C++面试题,帮助C++面试者避免很多不必要的困惑和迷惑。每个问题都有相对应的答案,以便各位同学快速查阅。C++和C的区别是什么?C++是C的超集,也就是说,C++包括了C的所有基础特性,并且还增加了一些新的特性。下面列举一些C和C++之间的主要区别:面向对象编程C++是一种面向对象的编程语言,而C不是。因此,C++支持类、继承、封装、多态等一系列面向对象的概念和特性,这些能力使C++更加灵活和强大。标准库C++标准库比C标准库更加完善和强大。C++标准库包括了很多容器类,如vector、map、set等,以及