【前端界面分享】

实现效果:html源码来自b站up主:【CSS+JS】甲方:啊?没叫你做那么超前啊_哔哩哔哩_bilibili

本人仅实现了将html格式改为vue3

html版:

对于前端连入门可能都没摸到,学了半天也就改成vue3了,对于输入密码时会显示两个查看密码的问题还是没头绪,希望有大佬会的话可以讲一下。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>山羊の前端小窝</title>
    <style>
        * {
            box-sizing: border-box;
            transition: .2s;
        }

        :root {
            --bgColor: white;
            --border: black;
            --inputColor: black;
            --outlineColor: rgb(60, 115, 235);
        }

        body {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            overflow: hidden;
            background: var(--bgColor);
        }

        body.show-password {
            --bgColor: rgba(0, 0, 0, 0.9);
            --inputColor: white;
            --border: rgb(255, 255, 255);
        }

        .shell {
            width: 100%;
            height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
            background-image: url(./img/1.png);
            background-size: cover;
        }

        form {
            transform: translate3d(0, 0, 0);
            padding: 50px;
            border: 20px solid var(--border);
            border-radius: 10px;
            box-shadow: 10px 10px 10px #00000065;
        }

        form > * + * {
            margin-top: 15px;
        }

        .form-item > * + * {
            margin-top: 0.5rem;
        }

        h2,
        label,
        input,
        button {
            font-size: 2rem;
            font-family: '优设标题黑';
            color: var(--inputColor);
        }

        h2 {
            font-size: 4rem;
            margin: 0;
        }

        label:focus,
        input:focus,
        button:focus {
            outline-offset: 2px;
        }

        label::-moz-focus-inner,
        input::-moz-focus-inner,
        button::-moz-focus-inner {
            border: none;
        }

        label[id=password],
        input[id=password],
        button[id=password] {
            color: black;
        }

        button {
            border: none;
        }

        [id=submit] {
            cursor: pointer;
            width: 100%;
            margin: 20px 0 0 2px;
            padding: 0.75rem 1.25rem;
            color: var(--bgColor);
            background-color: var(--inputColor);
            box-shadow: 4px 4px 0 rgba(30, 144, 255, 0.2);
        }

        [id=submit]:active {
            transform: translateY(1px);
        }

        .input-wrapper {
            position: relative;
        }

        input {
            padding: 0.75rem 4rem 0.75rem 0.75rem;
            width: 100%;
            border: 2px solid transparent;
            border-radius: 0;
            /* 设置背景颜色为透明 */
            background-color: transparent;
            box-shadow: inset 0 0 0 2px black,
            inset 6px 6px 0 rgba(30, 144, 255, 0.2),
            3px 3px 0 rgba(30, 144, 255, 0.2);
            -webkit-appearance: none;
        }

        input:focus {
            outline-offset: 1px;
        }

        .show-password input {
            box-shadow: inset 0 0 0 2px black;
            border: 2px dashed white;
        }

        .show-password input:focus {
            outline: none;
            border-color: rgb(255, 255, 145);
        }

        /* 设置眼睛按钮样式 */
        [id=eyeball] {
            --size: 1.25rem;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            outline: none;
            position: absolute;
            top: 50%;
            right: 0.75rem;
            border: none;
            background-color: transparent;
            transform: translateY(-50%);
        }

        [id=eyeball]:active {
            transform: translateY(calc(-50% + 1px));
        }

        .eye {
            width: var(--size);
            height: var(--size);
            border: 2px solid var(--inputColor);
            border-radius: calc(var(--size) / 1.5) 0;
            transform: rotate(45deg);
        }

        .eye:before,
        .eye:after {
            content: "";
            position: absolute;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            margin: auto;
            border-radius: 100%;
        }

        .eye:before {
            width: 35%;
            height: 35%;
            background-color: var(--inputColor);
        }

        .eye:after {
            width: 65%;
            height: 65%;
            border: 2px solid var(--inputColor);
            border-radius: 100%;
        }

        /* 设置光束样式 */
        [id=beam] {
            position: absolute;
            top: 50%;
            right: 1.75rem;
            clip-path: polygon(100% 50%, 100% 50%, 0 0, 0 100%);
            width: 100vw;
            height: 25vw;
            z-index: 1;
            mix-blend-mode: multiply;
            transition: transform 200ms ease-out;
            transform-origin: 100% 50%;
            transform: translateY(-50%) rotate(var(--beamDegrees, 0));
            pointer-events: none;
        }

        .show-password [id=beam] {
            background: rgb(255, 255, 145);
        }
    </style>
</head>

<body>
<div class="shell">
    <form>
        <h2>LOGIN</h2>
        <div class="form-item">
            <label for="username">Username</label>
            <div class="input-wrapper">
                <input type="text" id="username"/>
            </div>
        </div>
        <div class="form-item">
            <label for="password">Password</label>
            <div class="input-wrapper">
                <input type="password" id="password"/>
                <button type="button" id="eyeball">
                    <div class="eye"></div>
                </button>
                <div id="beam"></div>
            </div>
        </div>
        <button id="submit">Sign in</button>
    </form>
</div>
<script>
    const root = document.documentElement;
    const eye = document.querySelector('#eyeball');
    const beam = document.querySelector('#beam');
    const passwordInput = document.querySelector('#password');
    root.addEventListener('mousemove', (e) => {
        let rect = beam.getBoundingClientRect();
        let mouseX = rect.right + (rect.width / 2);
        let mouseY = rect.top + (rect.height / 2);
        let rad = Math.atan2(mouseX - e.pageX, mouseY - e.pageY);
        let degrees = (rad * (20 / Math.PI) * -1) - 350;
        root.style.setProperty('--beamDegrees', `${degrees}deg`);
    });
    eye.addEventListener('click', e => {
        e.preventDefault();
        document.body.classList.toggle('show-password');
        passwordInput.type = passwordInput.type === 'password' ? 'text' : 'password';
        //passwordInput.focus();
    });
</script>
</body>

</html>

vue3版本:

不是很会前端,改为vue3后部分效果消失,自己试着改了改,可以直接在handleLogin中处理自己的提交方法。

会提示beam元素可能为空,但不影响实际使用。

<template>
  <div ref="bigBox" class="bigBox" :class="{ showPassword: isshowPassword }">
    <div class="shell">
      <form @submit.prevent="handleLogin">
        <h2>LOGIN</h2>
        <div class="form-item">
          <label for="username">Username</label>
          <div class="input-wrapper">
            <input
              type="text"
              id="userAccount"
              v-model="Loginform.userAccount"
              autocomplete="off"
              autocorrect="off"
              autocapitalize="off"
              spellcheck="false"
              data-lpignore="true"
            />
          </div>
        </div>
        <div class="form-item">
          <label for="userPassword">Password</label>
          <div class="input-wrapper">
            <input
              :type="showPasswordType"
              id="password"
              ref="password"
              v-model="Loginform.userPassword"
              autocomplete="off"
              autocorrect="off"
              autocapitalize="off"
              spellcheck="false"
              data-lpignore="true"
            />
            <button type="button" id="eyeball" @click="eyeball">
              <div class="eye"></div>
            </button>
            <div id="beam"></div>
          </div>
        </div>
        <button id="submit">Login in</button>
      </form>
    </div>
  </div>
</template>
<script setup lang="ts">
import { computed, onMounted, reactive, ref } from "vue";
import { UserControllerService, UserLoginRequest } from "../../../../generated";
import { useRouter } from "vue-router";
import { useStore } from "vuex";

const router = useRouter();
const store = useStore();
// 创建响应式表单数据
const Loginform = reactive({
  userAccount: "",
  userPassword: "",
} as UserLoginRequest);
// 定义登录处理函数
const handleLogin = async () => {
  // 弹窗显示账号密码
  alert(JSON.stringify(Loginform));  
};
/**
 * css样式
 */

const form = reactive({
  showPassword: false,
});
let passwordInput = document.querySelector("#password");
// 计算属性,根据 showPassword 的值返回 'password' 或 'text'
const showPasswordType = computed(() =>
  form.showPassword ? "text" : "password"
);

let isshowPassword = ref(false);

onMounted(() => {
  const root = ref(document.documentElement); // 获取根元素
  const beam = document.querySelector("#beam"); // 获取光束元素
  const eye = document.querySelector("#eyeball"); // 获取眼睛按钮元素
  passwordInput = document.querySelector("#password"); // 获取密码输入框元素

  // 然后使用 beam.value, eye.value, passwordInput.value 来访问 DOM 元素
  // 鼠标移动事件监听器
  root.value.addEventListener("mousemove", (e) => {
    // 获取光束的位置和鼠标位置
    let rect = beam.getBoundingClientRect(); // 获取光束元素的位置信息
    let mouseX = rect.right + rect.width / 2; // 光束的横坐标
    let mouseY = rect.top + rect.height / 2; // 光束的纵坐标
    // 计算角度
    let rad = Math.atan2(mouseX - e.pageX, mouseY - e.pageY); // 计算鼠标和光束之间的角度
    let degrees = rad * (20 / Math.PI) * -1 - 350; // 将弧度转换为角度
    // 设置根元素的样式变量
    root.value.style.setProperty("--beamDegrees", `${degrees}deg`); // 设置根元素的样式变量,控制光束的旋转角度
  });
});
//点击显示密码
const eyeball = () => {
  form.showPassword = !form.showPassword;
  if (!isshowPassword.value) {
    isshowPassword.value = true;
  } else {
    isshowPassword.value = false;
  }
};
</script>
<style scoped>
/* 设置全局样式 */
* {
  box-sizing: border-box;
  transition: 0.2s;
}

/* 设置根元素变量 */
:root {
  --bgColor: white;
  /* 设置背景颜色变量为白色 */
  --inputColor: black;
  /* 设置输入框颜色变量为黑色 */
  --outlineColor: rgb(60, 115, 235);
  /* 设置输入框边框颜色变量为RGB(60, 115, 235) */
  --border: black;
  --beamDegrees: 0deg; /* 添加默认值 */
  /* ... 其他变量定义 */
}

/* 设置body样式 */
.bigBox {
  display: flex;
  /* 设置body元素为flex布局 */
  justify-content: center;
  /* 水平居中对齐 */
  align-items: center;
  /* 垂直居中对齐 */
  height: 100vh;
  /* 设置body元素的高度为视口高度 */
  overflow: hidden;
  /* 隐藏溢出内容 */
  background: var(--bgColor, #ffffff);
  /* 设置背景颜色为变量--bgColor的值 */
}

/* 设置外层容器样式 */
.shell {
  width: 100%;
  /* 设置外层容器的宽度为100% */
  height: 100vh;
  /* 设置外层容器的高度为视口高度 */
  display: flex;
  /* 设置外层容器为flex布局 */
  align-items: center;
  /* 垂直居中对齐 */
  justify-content: center;
  /* 水平居中对齐 */
  background-image: url(../../img/1.webp);
  /* 设置背景图片为./img/1.png */
  background-size: cover;
  /* 背景图片等比例缩放铺满容器 */
}

/* 设置表单样式 */
form {
  transform: translate3d(0, 0, 0);
  /* 3D变换,无位移 */
  padding: 50px;
  /* 设置内边距为10px */
  border: 20px solid var(--border, #000000);
  border-radius: 10px;
  box-shadow: 10px 10px 10px #00000065;
}

form > * + * {
  margin-top: 15px;
  /* 设置相邻元素之间的上边距为15px */
}

.form-item > * + * {
  margin-top: 0.5rem;
  /* 设置相邻元素之间的上边距为0.5rem */
}

/* 设置label, input, button样式 */
h2,
label,
input,
button {
  font-size: 2rem;
  /* 设置字体大小为2rem */
  color: var(--inputColor, #000000);
  /* 设置字体颜色为变量--inputColor的值 */
  font-family: "优设标题黑";
}

h2 {
  font-size: 4rem;
  margin: 0;
}

label:focus,
input:focus,
button:focus {
  outline-offset: 2px;
  /* 设置聚焦时的外边距为2px */
}

label::-moz-focus-inner,
input::-moz-focus-inner,
button::-moz-focus-inner {
  border: none;
  /* 去掉Firefox浏览器的聚焦时的内边框 */
}

/* 设置密码相关样式 */
label[id="userPassword"],
input[id="userPassword"],
button[id="userPassword"] {
  color: black;
  /* 设置字体颜色为黑色 */
}

/* 设置按钮样式 */
button {
  border: none;
  /* 去掉按钮的边框 */
}

[id="submit"] {
  width: 100%;
  cursor: pointer;
  /* 设置鼠标样式为手型 */
  margin: 20px 0 0 2px;
  /* 设置外边距为20px 0 0 2px */
  padding: 0.75rem 1.25rem;
  /* 设置内边距为0.75rem 1.25rem */
  color: var(--bgColor, #ffffff);
  /* 设置字体颜色为变量--bgColor的值 */
  background-color: var(--inputColor, #000000);
  /* 设置背景颜色为变量--inputColor的值 */
  box-shadow: 4px 4px 0 rgba(30, 144, 255, 0.2);
  /* 设置阴影效果 */
}

[id="submit"]:active {
  transform: translateY(1px);
  /* 设置点击时向下位移1px */
}

/* 设置输入框包裹器样式 */
.input-wrapper {
  position: relative;
  /* 设置相对定位 */
}

/* 设置输入框样式 */
input {
  padding: 0.75rem 4rem 0.75rem 0.75rem;
  /* 设置内边距为0.75rem 4rem 0.75rem 0.75rem */
  width: 100%;
  /* 设置宽度为100% */
  border: 2px solid transparent;
  /* 设置边为2px透明 */
  border-radius: 0;
  /* 设置边框圆角为0 */
  background-color: transparent;
  /* 设置背景颜色为透明 */
  box-shadow: inset 0 0 0 2px black, inset 6px 6px 0 rgba(30, 144, 255, 0.2),
    3px 3px 0 rgba(30, 144, 255, 0.2);
  /* 设置阴影效果 */
  -webkit-appearance: none;
  /* 去掉Webkit浏览器的默认样式 */
}

/*输入密码后样式*/
input:focus {
  outline-offset: 1px;
  /* 设置聚焦时的外边距为1px */
}

/* 设置显示密码时的输入框样式 */
.showPassword input {
  box-shadow: inset 0 0 0 2px black;
  /* 设置阴影效果 */
  border: 2px dashed white;
  /* 设置边框为2px虚线白色 */
}

.showPassword input:focus {
  outline: none;
  /* 去掉聚焦时的外边框 */
  border-color: rgb(255, 255, 145);
  /* 设置边框颜色为RGB(255, 255, 145) */
}

.showPassword input[id="userPassword"] {
  type: text;
}

/* 设置眼睛按钮样式 */
[id="eyeball"] {
  --size: 1.25rem;
  /* 设置变量--size的值为1.25rem */
  display: flex;
  /* 设置为flex布局 */
  align-items: center;
  /* 垂直居中对齐 */
  justify-content: center;
  /* 水平居中对齐 */
  cursor: pointer;
  /* 设置鼠标样式为手型 */
  outline: none;
  /* 去掉聚焦时的外边框 */
  position: absolute;
  /* 设置绝对定位 */
  top: 50%;
  /* 设置顶部距离为50% */
  right: 0.75rem;
  /* 设置右侧距离为0.75rem */
  border: none;
  /* 去掉边框 */
  background-color: transparent;
  /* 设置背景颜色为透明 */
  transform: translateY(-50%);
  /* 设置向上位移50% */
}

[id="eyeball"]:active {
  transform: translateY(calc(-50% + 1px));
  /* 设置点击时向上位移50% + 1px */
}

.eye {
  width: var(--size);
  /* 设置宽度为变量--size的值 */
  height: var(--size);
  /* 设置高度为变量--size的值 */
  border: 2px solid var(--inputColor, #000000);
  /* 设置边框为2px实线,颜色为变量--inputColor的值 */
  border-radius: calc(var(--size) / 1.5) 0;
  /* 设置边框圆角为变量--size的值除以1.5,0 */
  transform: rotate(45deg);
  /* 设置旋转45度 */
}

.eye:before,
.eye:after {
  content: "";
  /* 清空内容 */
  position: absolute;
  /* 设置绝对定位 */
  top: 0;
  /* 设置顶部距离为0 */
  right: 0;
  /* 设置右侧距离为0 */
  bottom: 0;
  /* 设置底部距离为0 */
  left: 0;
  /* 设置左侧距离为0 */
  margin: auto;
  /* 设置自动外边距 */
  border-radius: 100%;
  /* 设置边框圆角为100% */
}

.eye:before {
  width: 35%;
  /* 设置宽度为35% */
  height: 35%;
  /* 设置高度为35% */
  background-color: var(--inputColor, #000000);
  /* 设置背景颜色为变量--inputColor的值 */
}

.eye:after {
  width: 65%;
  /* 设置宽度为65% */
  height: 65%;
  /* 设置高度为65% */
  border: 2px solid var(--inputColor, #000000);
  /* 设置边框为2px实线,颜色为变量--inputColor的值 */
  border-radius: 100%;
  /* 设置边框圆角为100% */
}

/* 设置光束样式 */
[id="beam"] {
  position: absolute;
  /* 设置绝对定位 */
  top: 50%;
  /* 设置顶部距离为50% */
  right: 1.75rem;
  /* 设置右侧距离为1.75rem */
  clip-path: polygon(100% 50%, 100% 50%, 0 0, 0 100%);
  /* 设置剪切路径为多边形 */
  width: 100vw;
  /* 设置宽度为100vw */
  height: 25vw;
  /* 设置高度为25vw */
  z-index: 1;
  /* 设置层级为1 */
  mix-blend-mode: multiply;
  /* 设置混合模式为multiply */
  transition: transform 200ms ease-out;
  /* 设置过渡效果为200ms的ease-out */
  transform-origin: 100% 50%;
  /* 设置变换原点为右侧50% */
  transform: translateY(-50%) rotate(var(--beamDegrees, 0));
  /* 设置向上位移50%并旋转--beamDegrees度 */
  pointer-events: none;
  /* 禁用指针事件 */
}

.showPassword [id="beam"] {
  background: rgb(255 255 145 / 73%);
  /* 设置背景颜色为RGB(255, 255, 145) */
}

/* 设置显示密码时的样式 */
.showPassword {
  --bgColor: rgba(0, 0, 0, 0.9);
  /* 设置背景颜色变量为RGBA(0, 0, 0, 0.9) */
  --inputColor: white;
  /* 设置输入框颜色变量为白色 */
  --border: rgb(255, 255, 255);
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/782723.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PCB阻抗控制为何如此重要?

或许你在各个厂商打PCB板的时候&#xff0c;会遇到询问你是否需要阻抗的的下单需求&#xff1f; 在当今的应用中&#xff0c;设计通常变得越来越快&#xff0c;控制布局参数比以往任何时候都更加重要。 在PCB设计和生产过程中&#xff0c;有几种方法可以进行阻抗控制。最常见的…

介绍一款Java开发的商业开源MES系统

介绍一款Java开发的开源MES系统&#xff0c;万界星空科技开源的MES系统。该系统基于Java开发&#xff0c;具有广泛的适用性和高度的可定制性&#xff0c;能够满足不同行业、不同规模企业的智能制造需求。 一、系统概述 万界星空科技开源的MES系统是一款面向制造企业车间执行层…

限流实现-小工具

需求描述 写一个1秒两个的限流工具类&#xff0c;2r/s public class LimitHelper {private int maxLimit;private Semaphore semaphore;private int timeoutSeconds;public LimitHelper(int maxLimit, int timeoutSeconds) {this.maxLimit maxLimit;semaphore new Semaphore…

产品经理-的职业发展(9)

找一份好工作&#xff0c;就是为了获得更好的职业发展&#xff0c;下面分别给大家介绍下大、中、小型公司的职业发展路径 中小型公司 中小型公司的规模往往相对不大&#xff0c;又处于飞速发展过程中&#xff0c;培养体系和晋升标准都不够成熟&#xff0c;所以实际的职业发展路…

如何大幅减少 Vue.js 中的包大小和加载时间,提升用户体验!

大家好,我是CodeQi! 一位热衷于技术分享的码仔。 你知道吗,根据Google 的一项研究,如果网站加载时间超过 3 秒,53% 的移动用户会离开该网站? 性能优化是一个经常讨论的话题,但很多开发人员并不关心提高应用的速度。 在前端开发中,优化包大小和加载时间对于提升用户体…

电力设备巡检管理系统

电力设备巡检管理系统是一种基于计算机技术和网络通信技术的智能化管理系统&#xff0c;旨在提高电力设备巡检的效率、准确性和安全性。以下是对该系统的详细介绍&#xff1a; 一、系统概述 电力设备巡检管理系统通过实时采集、传输和分析电力设备的数据&#xff0c;帮助电力企…

基于java+springboot+vue实现的在线课程管理系统(文末源码+Lw)236

摘要 本文首先介绍了在线课程管理系统的现状及开发背景&#xff0c;然后论述了系统的设计目标、系统需求、总体设计方案以及系统的详细设计和实现&#xff0c;最后对在线课程管理系统进行了系统检测并提出了还需要改进的问题。本系统能够实现教师管理&#xff0c;科目管理&…

哪款护眼大路灯比较值得入手?五款值得入手的护眼大路灯推荐

哪款护眼大路灯比较值得入手&#xff1f;选择一款优质的大路灯很重要&#xff01;而对于市面上五花八门的大路灯型号&#xff0c;这给刚了解大路灯的萌新们增加了难度&#xff0c;为了帮助大家准确的寻找到一款合适的大路灯&#xff0c;我也是花费多个月实测了市面上比较热门的…

@金融安全专业人士和风险管理决策者,必读白皮书现开放免费下载!

加快建设金融强国&#xff0c;是中国经济长远发展的战略抉择&#xff0c;更是在经济全球化进程中维护国际金融安全的重要举措&#xff0c;而防控金融风险是建设金融强国的重要保障。 本月最新发布物&#xff0c;聚焦「安全」主题&#xff0c;尤其为金融行业的安全专家&#xff…

【计算机毕业设计】018基于weixin小程序实习记录

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

elasticSearch快速了解

elasticSearch&#xff1a;经常用于搜索引擎&#xff0c;我们用的百度搜索和github上的搜索都是用的搜索引擎&#xff0c;它是对输入内容进行分析&#xff0c;然后查询&#xff0c;不像数据库模糊搜索的like一样必须含用你输入的全部内容。 elasticSearch优势&#xff1a;支持…

ideaSSM校医院管理系统-计算机毕业设计源码82325

基于ideaSSM校医院管理系统设计 摘 要 随着信息技术的快速发展和广泛应用&#xff0c;传统的校医院管理模式已经难以满足日益增长的管理需求和服务质量要求。为了提升校医院管理效率和服务水平&#xff0c;本文提出了一种基于IDEASSM的校医院管理系统设计方案。该系统以先进的…

SQL 创建一个actor表,包含如下列信息

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 创建一个acto…

CentOS 安装 annie/lux,以及 annie/lux 的使用

annie 介绍 如果第一次听到 annie 想必都会觉得陌生&#xff0c;annie 被大家称为视频下载神器&#xff0c;annie 作者介绍说可以下载抖音、哔哩哔哩、优酷、爱奇艺、芒果TV、YouTube、Tumblr、Vimeo 等平台的视频。 githup&#xff1a;https://github.com/pingf/annie 支持…

『C++成长记』string模拟实现

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;C &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ ​ 目录 一、存储结构 二、默认成员函数 &#x1f4d2;2.1构造函数 &#x1f4d2;2.…

认证资讯|Bluetooth SIG认证

在当今高度互联的世界中&#xff0c;无线技术的普及已经成为我们生活和工作中不可或缺的一部分。作为领先的无线通信技术之一&#xff0c;Bluetooth技术以其稳定性、便捷性和广泛的应用场景而备受青睐。然而&#xff0c;要想在激烈的市场竞争中脱颖而出&#xff0c;获得Bluetoo…

景联文科技打造高质量图文推理问答数据集,赋能大语言模型提升推理能力

大语言模型在处理推理任务时&#xff0c;不同于人类能够反思错误并修正思维路径&#xff0c;当它遇到自身知识盲区时&#xff0c;缺乏自我校正机制&#xff0c;往往导致输出结果不仅无法改善&#xff0c;反而可能变得更不准确。 需要依赖外部的知识库和推理能力来克服其在理解和…

Java锁升级:无锁 → 偏向锁 → 轻量级锁 → 重量级锁

说明 JDK1.6为了减少获得锁和释放锁所带来的性能消耗&#xff0c;引入了“偏向锁”和“轻量级锁”&#xff0c;所以在JDK1.6里锁一共有四种状态&#xff0c;无锁状态&#xff0c;偏向锁状态&#xff0c;轻量级锁状态和重量级锁状态&#xff0c;它会随着竞争情况逐渐升级。锁可以…

Postgresql - 用户权限数据库

1、综述 在实际的软件项目开发过程中&#xff0c;用户权限控制可以说是所有运营系统中必不可少的一个重点功能&#xff0c;根据业务的复杂度&#xff0c;设计的时候可深可浅&#xff0c;但无论怎么变化&#xff0c;设计的思路基本都是围绕着用户、部门、角色、菜单这几个部分展…

通过SimU-Net进行同时深度学习体素分类的纵向CECT扫描肝病灶变化分析| 文献速递-深度学习自动化疾病检查

Title 题目 Liver lesion changes analysis in longitudinal CECT scans by simultaneous deep learning voxel classification with SimU-Net 通过SimU-Net进行同时深度学习体素分类的纵向CECT扫描肝病灶变化分析 01 文献速递介绍 影像学随访是对影像学研究的解读&#x…