C++ 面试问题集合

devtools/2024/11/14 4:59:30/

文章目录

设计模式

单例

#include <iostream>
#include <string>
#include <memory>
#include <mutex>
#include <thread>using namespace std;class SingleTon{
protected://外部不可直接操作SingleTon(const string& value):_value(value) {cout<< "SingleTon Construct" <<endl;}~SingleTon() {cout<< "SingleTon Destruct" <<endl;}//静态成员   全局访问  智能指针   自动释放static  shared_ptr<SingleTon> singleton;string _value;public://禁止外部移动和拷贝SingleTon(const SingleTon && obj) = delete;void operator=(const SingleTon  obj) = delete;//提供静态接口  类名调用static shared_ptr<SingleTon> getInstance(const string& value){//call once 调用static once_flag s_flag;call_once(s_flag , [&](){ singleton = shared_ptr<SingleTon>(new SingleTon(value), [](SingleTon * singleton){ delete singleton;});});return singleton;}string pinrtValue(){return _value;}
};//变量重置
shared_ptr<SingleTon> SingleTon::singleton = nullptr;void printValue(const string & value){cout<< SingleTon::getInstance(value)->pinrtValue()<<endl;
}int main(){thread th1(printValue,"aaa");thread th2(printValue,"bbb");th1.join();th2.join();return 0;
}

排序算法

查找算法

二分查找

#include <iostream>
#include <vector>using namespace std;using Rank = int;class Fib{
private:Rank g ,f;public:Fib(Rank n){f =0; g= 1;  //f 代表 fib(k -1)  g 代表 fib(k)while(0 < n--){g = g + f;f = g - f;}}Rank get(){return g;}Rank next(){g = g + f;f = g -f;return g;};Rank pre(){f = g-f;g = g-f;return g;}
};template < typename T>
static Rank fibSearch(T *A,const T &e,Rank lo,Rank hi){for(Fib fib(hi - lo) ; lo < hi;){while( hi -lo < fib.get()) fib.pre();Rank mi = lo + fib.get() -1;(e < A[mi]) ? hi = mi : lo = mi + 1;}return lo - 1;
}int main(){std::vector<Rank> test{1,3,6,8,9,11,13,17,20} ;Rank index = fibSearch<Rank>(test.data(),14,0,test.size());cout << "index: " << index <<endl;return 0;
}

http://www.ppmy.cn/devtools/133376.html

相关文章

使用vscode 连接linux进行开发

1. 在Vscode中安装扩展功能remote ssh 2. 打开命令窗口 3. 在弹出的命令窗口输入ssh&#xff0c;并从弹出的提示中选择 Add New SSH Host 4. 在弹出的输入窗口中输入类似下面形式的 连接地址&#xff1a; 5. 输入回车后出现下面的对话框&#xff0c;这个对话框是说你要用哪个…

云计算基础知识

声明&#xff1a;学习视频来自b站up主 泷羽sec&#xff0c;如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址&#xff1a;黑客云技术基础之&#xff08;网恋避险&#xff09;_哔哩哔哩_bilibili 目录 一、什么是云 二、云架构介绍 1. 技术基础的重要性 2. 技术演变…

每天10个vue面试题(八)

1、Vue如何监听页面url中hash变化&#xff1f; 监听 $route 的变化&#xff1a;在Vue中&#xff0c;你可以使用watch属性来监听$route的变化。当路由发生变化时&#xff0c;会执行相应的处理函数。使用 window.location.hash&#xff1a;直接读取window.location.hash的值。这…

MATLAB和Python及R潜变量模型和降维

MATLAB片段 在 MATLAB 中&#xff0c;潜变量模型 (Latent Variable Models, LVMs) 和降维技术被广泛用于复杂数据的分析&#xff0c;例如基因表达数据或其他高维数据集。这些工具有助于揭示隐藏的结构并检测扰动&#xff08;例如基因敲除或化学处理&#xff09;在数据中的影响…

基于SSM(Spring + Spring MVC + MyBatis)框架的药房管理系统

基于SSM&#xff08;Spring Spring MVC MyBatis&#xff09;框架的药房管理系统 项目概述 功能需求 用户管理&#xff1a;管理员可以添加、删除、修改和查询用户信息。药品管理&#xff1a;支持对药品信息的增删改查操作&#xff0c;包括药品名称、价格、库存量等。供应商…

Bash Shell - 获取日期、时间

1. 使用date获取日期 以下代码将date的执行结果存储在today变量中。date 是获取日期和时间的命令。 选择使用 quotes()或$ #!/bin/bashtodaydate echo $todaytoday$(date) echo $today 2. 使用 Format 输出所需日期和时间 date FORMAT 2.1 "MM-DD-YY" 形式输出…

hadoop 3.x 伪分布式搭建

hadoop 伪分布式搭建 环境 CentOS 7jdk 1.8hadoop 3.3.6 1. 准备 准备环境所需包上传所有压缩包到服务器 2. 安装jdk # 解压jdk到/usr/local目录下 tar -xvf jdk-8u431-linux-x64.tar.gz -C /usr/local先不着急配置java环境变量&#xff0c;后面和hadoop一起配置 3. 安装had…

WPF自定义翻页控件

XAML文件如下&#xff1a; <UserControlx:Class"CTMVVMDemo.View.UserControls.DataPager"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://s…