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

【C++】string的成员函数、成员常量和非成员函数

目录

string

1. string的成员函数

1.1 构造、析构和赋值运算符重载

1.1.1 构造函数

1.1.2 析构函数

1.1.3 赋值运算符重载

1.2 迭代器

1.3 容量

1.4 元素访问

1.4.1 遍历方法

1.5 修改器

1.6 字符串操作

2. string的成员常量

3. string的非成员函数


string

以下函数加粗为重点。

1. string的成员函数

1.1 构造、析构和赋值运算符重载

1.1.1 构造函数

default

默认构造函数

string();构造空的string类对象,即空字符串

copy

拷贝构造函数

string(const string& str);构造一个str的拷贝

substring

string(const string& str, size_t pos, size_t len = npos);

用str中从pos开始的len个字符的子串来构造

如果str太短或者len是string::npos,则复制到str的末尾

from c-stringstring(const char* s);用C格式字符串来构造
from sequencestring(const char* s, size_t n);

用从s指向的字符串中前n个字符来构造

fillstring(size_t n, char c);用n个字符c来构造
rangetemplate <class InputIterator>   string(InputIterator first, InputIterator last);用范围[first,last]中的字符序列来构造
#include <string>
#include <iostream>using namespace std;int main()
{string s1;//defaultcout << s1 << endl;//空字符串string s2("hello world");//from c-stringcout << s2 << endl;//hello worldstring s3(s2);//copycout << s3 << endl;//hello worldstring s4(s3, 0, 5);//substringcout << s4 << endl;//hellostring s5("hello world", 5);//from sequencecout << s5 << endl;//hellostring s6(10, '*');//fillcout << s6 << endl;//**********return 0;
}

​​

1.1.2 析构函数

~string();销毁string类对象

1.1.3 赋值运算符重载

stringstring& operator=(const string& str);
c-stringstring& operator=(const char* s);
characterstring& operator=(char c);

1.2 迭代器

begin

&

end

iterator begin();
const_iterator begin() const;

iterator end();
const_iterator end() const;

begin返回一个迭代器,指向字符串的第一个字符

end返回一个迭代器,指向字符串的最后一个字符的下一个位置

rbegin

&

rend

reverse_iterator rbegin();
const_reverse_iterator rbegin() const;

reverse_iterator rend();
const_reverse_iterator rend() const;

rbegin返回一个反向迭代器,指向字符串的最后一个字符

rend返回一个反向迭代器,指向字符串的第一个字符的上一个位置

cbegin

&

cend

const_iterator cbegin() const;
const_iterator cend() const;

cbegin返回一个const迭代器,指向字符串的第一个字符

cend返回一个const迭代器,指向字符串的最后一个字符的下一个位置

crbegin

&

crend

const_reverse_iterator crbegin() const;
const_reverse_iterator crend() const;

crbegin返回一个const反向迭代器,指向字符串的最后一个字符

crend返回一个const反向迭代器,指向字符串的第一个字符的上一个位置

begin&end和rbegin&rend返回的迭代器指向:

​​

const_iterator是一个指向const内容的迭代器。迭代器本身可以修改,但是它不能被用来修改它所指向的内容。

begin&end/rbegin&rend和cbegin&cend/crbegin&crend的不同:

  • begin&end/rbegin&rend的返回类型由对象是否是常量来决定。如果不是常量,返回iterator;如果是常量,返回const_iterator。
  • cbegin&cend/crbegin&crend的返回类型是const_iterator,不管对象本身是否是常量。
#include <string>
#include <iostream>using namespace std;int main()
{string s("hello world");string::iterator it = s.begin();while (it != s.end()){cout << *it << " ";++it;}cout << endl;//h e l l o   w o r l dauto rit = s.rbegin();//string::reverse_iterator rit = s.rbegin();while (rit != s.rend()){cout << *rit << " ";++rit;}cout << endl;//d l r o w   o l l e hreturn 0;
}

1.3 容量

sizesize_t size() const;

返回字符串的长度

size()与length()方法底层实现原理完全相同,引入size()的原因是为了与其他容器的接口保持一致,一般情况下基本都是用size()

lengthsize_t length() const;返回字符串的长度
max_sizesize_t max_size() const;返回字符串能够达到的最大长度
resize

void resize(size_t n);

void resize(size_t n, char c);

调整字符串的长度为n(影响size)

·如果n<当前字符串的长度,多余的字符会被截掉

·如果n>当前字符串的长度,则:1)如果没有指定填充字符,则多出的空间用空字符填充;2)如果指定了填充字符c,则多出的空间用c填充

capacitysize_t capacity() const;返回分配的存储空间的大小
reservevoid reserve(size_t n = 0);

为字符串预留空间(影响capacity)

·如果n>当前的容量,容量增加到至少n个字符(空间大小满足16i-1)

·在所有其他情况下,它被视为缩小字符串容量的非约束性请求:容器实现可以自由地进行其他优化,并使字符串的容量大于n

clearvoid clear();清空字符串
emptybool empty() const;检测字符串是否为空串,是返回true,否则返回false
shrink_to_fitvoid shrink_to_fit();

收缩容量以适应字符串的长度

这个请求没有约束力,容器实现可以自由地进行优化,使字符串的容量大于其大小

#include <string>
#include <iostream>using namespace std;int main()
{string s("hello world");cout << s.size() << endl;//11cout << s.length() << endl;//11cout << s.max_size() << endl;//2147483647cout << s.capacity() << endl;//15s.resize(15, '!');cout << s << endl;//hello world!!!!s.resize(13);cout << s << endl;//hello world!!s.reserve(30);cout << s.capacity() << endl;//31s.shrink_to_fit();cout << s.capacity() << endl;//15s.clear();if (s.empty())cout << "字符串为空" << endl;elsecout << "字符串不为空" << endl;//字符串为空return 0;
}

​​

1.4 元素访问

operator[]

char& operator[] (size_t pos);

const char& operator[] (size_t pos) const;

返回字符串中pos位置的字符的引用

没有越界检查

atchar& at(size_t pos);
const char& at(size_t pos) const;

返回字符串中pos位置的字符的引用

有越界检查,如果越界会抛异常

backchar& back();
const char& back() const;
返回字符串中最后一个字符的引用
frontchar& front();
const char& front() const;
返回字符串中第一个字符的引用
#include <string>
#include <iostream>using namespace std;int main()
{string s("hello world");cout << s[0] << endl;//hcout << s.at(1) << endl;//ecout << s.back() << endl;//dcout << s.front() << endl;//hreturn 0;
}

1.4.1 遍历方法

1.4.1.1 operator[](最常用)

#include <string>
#include <iostream>using namespace std;int main()
{string s("hello world");for (size_t i = 0; i < s.size(); i++){cout << s[i] << " ";}cout << endl;//h e l l o   w o r l dreturn 0;
}

1.4.1.2 迭代器

#include <string>
#include <iostream>using namespace std;int main()
{string s("hello world");string::iterator it = s.begin();while (it != s.end()){cout << *it << " ";++it;}cout << endl;//h e l l o   w o r l dauto rit = s.rbegin();//string::reverse_iterator rit = s.rbegin();while (rit != s.rend()){cout << *rit << " ";++rit;}cout << endl;//d l r o w   o l l e hreturn 0;
}

1.4.1.3 范围for

#include <string>
#include <iostream>using namespace std;int main()
{string s("hello world");for (auto ch : s){cout << ch << " ";}cout << endl;//h e l l o   w o r l dreturn 0;
}

1.5 修改器

operator+=string& operator+=(const string& str);
string& operator+=(const char* s);
string& operator+=(char c);
字符串追加
append

string& append(const string& str);

string& append(const string& str, size_t subpos, size_t sublen);
string& append(const char* s);

string& append(const char* s, size_t n);
string& append(size_t n, char c);

template <class InputIterator>   string& append(InputIterator first, InputIterator last);

字符串追加
push_backvoid push_back(char c);尾插(追加)一个字符
assign

string& assign(const string& str);

string& assign(const string& str, size_t subpos, size_t sublen);
string& assign(const char* s);

string& assign(const char* s, size_t n);
string& append(size_t n; char c);

template <class InputIterator>   string& assign(InputIterator first, InputIterator last);

给字符串赋值,替换其当前内容
insert

string& insert(size_t pos, const string& str);
string& insert(size_t pos, const string& str, size_t subpos, size_t sublen);
string& insert(size_t pos, const char* s);
string& insert(size_t pos, const char* s, size_t n);

string& insert(size_t pos, size_t n, char c);    void insert(iterator p, size_t n, char c);
iterator insert(iterator p, char c);
template <class InputIterator>   void insert(iterator p, InputIterator first, InputIterator last);

在字符串pos位置之前插入
erasestring& erase(size_t pos = 0, size_t len = npos);
iterator erase(iterator p);
iterator erase(iterator first, iterator last);
删除字符串的一部分
replacestring& replace(size_t pos, size_t len, const string& str); string& replace(iterator i1, iterator i2, const string& str);
string& replace(size_t pos, size_t len, const string& str, size_t subpos, size_t sublen);
string & replace(size_t pos, size_t len, const char* s); string& replace(iterator i1, iterator i2, const char* s);
string& replace(size_t pos, size_t len, const char* s, size_t n); string& replace(iterator i1, iterator i2, const char* s, size_t n);
string& replace(size_t pos, size_t len, size_t n, char c); string& replace(iterator i1, iterator i2, size_t n, char c);
template <class InputIterator>  string& replace(iterator i1, iterator i2, InputIterator first, InputIterator last);
替换字符串的一部分
swapvoid swap(string& str);交换字符串的内容
pop_backvoid pop_back();尾删
#include <string>
#include <iostream>using namespace std;int main()
{string s1("hello");string s2("world");s1 += " ";s1 += s2;s1 += '!';cout << s1 << endl;//hello world!s2.append(" peace");s2.append(2, '!');cout << s2 << endl;//world peace!!//尾插一个字符的3种写法s1 += '*';//operator+=最常用s1.append(1, '~');s2.push_back('@');cout << s1 << endl;//hello world!*~cout << s2 << endl;//world peace!!@s1.assign("I want to study.");cout << s1 << endl;//I want to study.s1.insert(15, " and play");cout << s1 << endl;//I want to study and play.s1.erase(10, 10);cout << s1 << endl;//I want to play.s1.replace(0, 1, "They");cout << s1 << endl;//They want to play.s1.swap(s2);cout << s1 << endl;//world peace!!@cout << s2 << endl;//They want to play.s1.pop_back();cout << s1 << endl;//world peace!!return 0;
}

​​

把"hello world i love you"中的空格替换成"%20":

#include <string>
#include <iostream>using namespace std;int main()
{string s("hello world i love you");/*//第1种方法 size_t num = 0;for (auto ch : s){if (ch == ' ')++num;//计算有几个空格}//提前开空间,避免repalce时扩容s.reserve(s.size() + 2 * num);size_t pos = s.find(' ');//第一个空格的位置while (pos != string::npos)//npos是长度参数,表示直到字符串结束{s.replace(pos, 1, "%20");pos = s.find(' ', pos + 3);}cout << s << endl;//hello%20world%20i%20love%20you*///第2种方法string newStr;size_t num = 0;for (auto ch : s){if (ch == ' ')++num;//计算有几个空格}//提前开空间,避免repalce时扩容newStr.reserve(s.size() + 2 * num);for (auto ch : s){if (ch != ' ')newStr += ch;elsenewStr += "%20";}s = newStr;cout << newStr << endl;//hello%20world%20i%20love%20youreturn 0;
}

1.6 字符串操作

c_strconst char* c_str() const;返回C格式字符串(以'\0'结尾)
dataconst char* data() const;

返回字符数组(不保证有‘\0’)

get_allocatorallocator_type get_allocator() const;返回配置器
copysize_t copy(char* s, size_t len, size_t pos = 0) const;

将对象中从pos开始的len个字符的子串复制到s指向的数组中(不会在复制内容的末尾附加'\0')

find

size_t find(const string & str, size_t pos = 0) const;
size_t find(const char* s, size_t pos = 0) const;
size_t find(const char* s, size_t pos, size_type n) const;

size_t find(char c, size_t pos = 0) const;

从对象中pos位置开始往后匹配,返回第一次出现的位置
rfindsize_t rfind(const string & str, size_t pos = npos) const;
size_t rfind(const char* s, size_t pos = npos) const;
size_t rfind(const char* s, size_t pos, size_t n) const;
size_t rfind(char c, size_t pos = npos) const;
从对象中pos位置开始往前匹配,返回第一次出现的位置
find_first_ofsize_t find_first_of(const string& str, size_t pos = 0) const;
size_t find_first_of(const char* s, size_t pos = 0) const;
size_t find_first_of(const char* s, size_t pos, size_t n) const;
size_t find_first_of(char c, size_t pos = 0) const;

从对象中pos位置开始往后匹配,返回第一个与参数中指定的任何字符相匹配的字符的位置

find_last_ofsize_t find_last_of(const string& str, size_t pos = 0) const;
size_t find_last_of(const char* s, size_t pos = 0) const;
size_t find_last_of(const char* s, size_t pos, size_t n) const;
size_t find_last_of(char c, size_t pos = 0) const;
从对象中pos位置开始往前匹配,返回第一个与参数中指定的任何字符相匹配的字符的位置
find_first_not_ofsize_t find_first_not_of(const string& str, size_t pos = 0) const;
size_t find_first_not_of(const char* s, size_t pos = 0) const;
size_t find_first_not_of(const char* s, size_t pos, size_t n) const;
size_t find_first_not_of(char c, size_t pos = 0) const;
从对象中pos位置开始往后匹配,返回第一个与参数中指定的任何字符不匹配的字符的位置
find_last_not_ofsize_t find_last_not_of(const string& str, size_t pos = 0) const;
size_t find_last_not_of(const char* s, size_t pos = 0) const;
size_t find_last_not_of(const char* s, size_t pos, size_t n) const;
size_t find_last_not_of(char c, size_t pos = 0) const;
从对象中pos位置开始往前匹配,返回第一个与参数中指定的任何字符不匹配的字符的位置
substrstring substr(size_t pos = 0, size_t len = npos) const;

返回一个从pos开始的len个字符的子串

compareint compare(const string& str) const;
int compare(size_t pos, size_t len, const string& str) const; int compare(size_t pos, size_t len, const string& str, size_t subpos, size_t sublen) const;
int compare(const char* s) const; int compare(size_t pos, size_t len, const char* s) const;
int compare(size_t pos, size_t len, const char* s, size_t n) const;

比较字符串

返回值=0,对象=比较字符串

返回值<0,对象<比较字符串

返回值>0,对象>比较字符串

#include <string>
#include <iostream>using namespace std;int main()
{string s("hello");cout << s.c_str() << endl;//hellocout << (void*)s.c_str() << endl;//地址cout << s.data() << endl;//hellochar buffer[10] = { '\0' };s.copy(buffer, 3, 1);for (auto ch : buffer){cout << ch;}cout << endl;//ellsize_t pos = s.find('l');while (pos != string::npos)//npos是长度参数,表示直到字符串结束{s.replace(pos, 1, "L");pos = s.find('l', pos + 1);}cout << s << endl;//heLLopos = s.rfind('L');while (pos != string::npos){s.replace(pos, 1, "l");pos = s.rfind('L', pos - 1);}cout << s << endl;//hellocout << s.find_first_of("jklmn") << endl;//2cout << s.find_last_of("jklmn") << endl;//3cout << s.find_first_not_of("heL") << endl;//2cout << s.find_last_not_of("Lo") << endl;//3cout << s.substr(1, 3) << endl;//ellcout << s.compare("hello world") << endl;//-1return 0;
}

2. string的成员常量

npos为长度参数,表示直到字符串结束。

把"hello world i love you"中的空格替换成"%20":

#include <string>
#include <iostream>using namespace std;int main()
{string s("hello world i love you");//第1种方法size_t num = 0;for (auto ch : s){if (ch == ' ')++num;//计算有几个空格}//提前开空间,避免repalce时扩容s.reserve(s.size() + 2 * num);size_t pos = s.find(' ');//第一个空格的位置while (pos != string::npos)//npos是长度参数,表示直到字符串结束{s.replace(pos, 1, "%20");pos = s.find(' ', pos + 3);}cout << s << endl;//hello%20world%20i%20love%20you/*//第2种方法string newStr;size_t num = 0;for (auto ch : s){if (ch == ' ')++num;//计算有几个空格}//提前开空间,避免repalce时扩容newStr.reserve(s.size() + 2 * num);for (auto ch : s){if (ch != ' ')newStr += ch;elsenewStr += "%20";}s = newStr;cout << newStr << endl;//hello%20world%20i%20love%20you*/return 0;
}

3. string的非成员函数

operatpr+string operator+ (const string& lhs, const string& rhs);
string operator+ (const string & lhs, const char* rhs); string operator+ (const char* lhs, const string& rhs);
string operator+ (const string& lhs, char rhs); string operator+ (char lhs, const string& rhs);

+运算符重载

(尽量少用,因为传值返回,导致深拷贝效率低)

relational operatorsbool operator== (const string& lhs, const string& rhs); bool operator== (const char* lhs, const string& rhs); bool operator== (const string& lhs, const char* rhs);
bool operator!= (const string& lhs, const string& rhs); bool operator!= (const char* lhs, const string& rhs); bool operator!= (const string& lhs, const char* rhs);
bool operator<  (const string& lhs, const string& rhs); bool operator<  (const char* lhs, const string& rhs); bool operator<  (const string& lhs, const char* rhs);
bool operator<= (const string& lhs, const string& rhs); bool operator<= (const char* lhs, const string& rhs); bool operator<= (const string& lhs, const char* rhs);
bool operator>  (const string& lhs, const string& rhs); bool operator>  (const char* lhs, const string& rhs); bool operator>  (const string& lhs, const char* rhs);
bool operator>= (const string& lhs, const string& rhs); bool operator>= (const char* lhs, const string& rhs); bool operator>= (const string& lhs, const char* rhs);
关系运算符重载
swapvoid swap(string& x, string& y);交换两个字符串
operator>>istream& operator>>(istream& is, string& str);>>运算符重载
operator<<ostream& operator<<(ostream& os, const string& str);<<运算符重载
getlineistream& getline(istream& is, string& str, char delim);
istream& getline(istream& is, string& str);
从流中获取一行到字符串

相关文章:

【C++】string的成员函数、成员常量和非成员函数

目录 string 1. string的成员函数 1.1 构造、析构和赋值运算符重载 1.1.1 构造函数 1.1.2 析构函数 1.1.3 赋值运算符重载 1.2 迭代器 1.3 容量 1.4 元素访问 1.4.1 遍历方法 1.5 修改器 1.6 字符串操作 2. string的成员常量 3. string的非成员函数 string 以下…...

网络互连模型:OSI 七层模型

OSI 七层模型 七层模型&#xff0c;亦称 OSI&#xff08;Open System Interconnection&#xff09;。OSI 七层参考模型是国际标准化组织&#xff08;ISO&#xff09;制定的一个用于计算机或通信系统间网络互联的标准体系&#xff0c;一般称为 OSI 参考模型或七层模型。OSI 七层…...

18跨越语言:不同语言间进行RPC通信

在最开始介绍gRPC时我们讲到,gRPC具有灵活的兼容性,可以支持很多种编程语言,下面我们就使用在后端领域最常用的两种编程语言Go和Java,来体验一下gRPC在不同语言的项目间是如何进行通信的。 逻辑架构 由上图我们可以看出,Go语言设计gRPC的服务端,Java语言设计gRPC的客户端…...

解压缩工具:Bandizip 中文

bandizip是一款可靠和快速的压缩软件&#xff0c;它可以解压RAR、7Z、ZIP、ISO等数十种格式&#xff0c;也可以压缩7Z、ZIP、ISO等好几种常用格式&#xff0c;在压缩文件方面毫不逊色于winrar&#xff0c;适用于多核心压缩、快速拖放、高速压缩等功能&#xff0c;采用了先进快速…...

JAVA知识点全面总结2:面向对象

二.面向对象 1.面向对象有哪些重要的关键字&#xff1f;作用是什么&#xff1f; 2.理解多态的使用&#xff1f; 3.接口与抽象类的相同点和不同点&#xff1f; 4.equals和toString的判断&#xff1f; 5.新建对象的流程是什么&#xff1f;new一个对象&#xff1f; 6.深拷贝…...

DNS作用及工作原理

文章目录1. DNS作用2 DNS 三个组成部分&#xff1a;2.1 客户端2.2Local DNS2.3 权威域 DNS 服务器3 工作过程1. DNS作用 DNS 分为 Client 和 Server&#xff0c;Client 扮演发问的角色&#xff0c;也就是问 Server 一个 Domain Name&#xff0c;而 Server 必须要回答此 Domain…...

Android 9.0 wifi的随机mac地址修改为固定不变

1.前言 在9.0的系统rom产品定制化开发中,在系统默认的wifi的mac地址是会在联网前后会变化,因为默认是随机显示mac地址,所以会在连上wifi后mac地址会变动但是如果根据mac地址来升级 会引起一系列问题,为了避免这些问题 所以就要求固定mac地址,这就需要看wifi模块怎么改变ma…...

Apinto 网关 V0.11.1 版本发布,多协议互转,新增编码转换器,接入 Prometheus

Eolink 旗下 Apinto 开源网关再次更新啦~ 一起来看看是否有你期待的功能&#xff01; 1、协议转换功能上线 之前发布的 Apinto v0.10.0 已经支持了多协议的基本功能&#xff0c;实现多协议支持的一次验证。本次最新版本可以支持 HTTP 与 gRPC、HTTP 与 Dubbo2 之间的协议转换。…...

Android 12.0 根据app包名授予app监听系统通知权限

1.概述 在12.0的系统rom产品定制化开发中,在一些产品rom定制化开发中,系统内置的第三方app需要开启系统通知权限,然后可以在app中,监听系统所有通知,来做个通知中心的功能,所以需要授权 获取系统通知的权限,然后来顺利的监听系统通知。来做系统通知的功能 2.根据app包名…...

mysql视图和存储过程

视图视图就是将一条sql查询语句封装起来&#xff0c;之后使用sql时&#xff0c;只需要查询视图即可&#xff0c;查询视图时会将这条sql语句再次执行一遍。视图不保存数据&#xff0c;数据还是在表中。SELECT 语句所查询的表称为视图的基表&#xff0c;而查询的结果集称为虚拟表…...

uniapp 实现人脸认证

前言 对于前端来说&#xff0c;需要后端提供一个人脸识别接口&#xff0c;前端传入图片&#xff0c;接口识别并返回结果&#xff0c;如此看来&#xff0c;其实前端只需实现图片传入即可&#xff0c;但是其实不然&#xff0c;在传入图片时&#xff0c;需要进行以下几点操作&…...

自学大数据第三天~终于轮到hadoop了

前面那几天是在找大数据的门,其实也是在搞一些linux的基本命令,现在终于轮到hadoop了 Hadoop hadoop的安装方式 单机模式: 就如字面意思,在一台机器上运行,存储是采用本地文件系统,没有采用分布式文件系统~就如我们一开始入门的时候都是从本地开始的; 伪分布式模式 存储采用…...

Unity 入门精要00---Unity提供的基础变量和宏以及一些基础知识

头文件引入&#xff1a; XXPROGRAM ... #include "UnityCG.cginc"; ... ENDXX 常用的结构体&#xff08;在UnityCg.cginc文件中&#xff09;&#xff1a;在顶点着色器输入和输出时十分好用 。 关于如何使用这些结构体&#xff0c;可在Unity安装文件目录/Editor…...

Kubernetes的网络架构及其安全风险

本博客地址&#xff1a;https://security.blog.csdn.net/article/details/129137821 一、常见的Kubernetes网络架构 如图所示&#xff1a; 说明&#xff1a; 1、集群由多个节点组成。 2、每个节点上运行若干个Pod。 3、每个节点上会创建一个CNI网桥&#xff08;默认设备名称…...

Blob分析+特征+(差分)

Blob分析特征0 前言1 概念2 方法2.1 图像采集2.2 图像分割2.3 特征提取3 主要应用场景&#xff1a;0 前言 在缺陷检测领域&#xff0c;halcon通常有6种处理方法&#xff0c;包括Blob分析特征、Blob分析特征差分、频域空间域、光度立体法、特征训练、测量拟合&#xff0c;本篇博…...

Flink 提交模式

Flink的部署方式有很多,支持Local,Standalone,Yarn,Docker,Kubernetes模式等。而根据Flink job的提交模式,又可以分为三种模式: 模式1:Application Mode Flink提交的程序,被当做集群内部Application,不再需要Client端做繁重的准备工作。(例如执行main函数,生成JobG…...

网络总结知识点(网络工程师必备)三

♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放,树高千尺,落叶归根人生不易,人间真情 目录 前言 51.什么是ARP代理?...

测开:前端基础-css

一、CSS介绍和引用 1.1 css概述 层叠样式表&#xff0c;是一种样式表语言&#xff0c;用来描述HTML和XML文档的呈现。 CSS 用于简化HTML标签&#xff0c;把关于样式部分的内容提取出来&#xff0c;进行单独的控制&#xff0c;使结构与样式分离开发。 CSS 是以HTML为基础&…...

Java学习记录之JDBC

JDBC JDBC 是 Java Database Connectivity 的缩写&#xff0c;是允许Java 程序访问并操作关系型数据库数据的一套 应用程序接口。本身就是一种规范&#xff0c;它提供的接口有一套完整的&#xff0c;可移植的访问底层数据库的程序。 JDBC 的架构 JDBC API支持两层和三层处理…...

矩阵翻硬币

题目描述 小明先把硬币摆成了一个 n 行 m 列的矩阵。 随后,小明对每一个硬币分别进行一次 Q 操作。 对第 x 行第 y 列的硬币进行 Q 操作的定义:将所有第 ix 行,第 jy 列的硬币进行翻转。...

告别复制粘贴!用Qwen Code在终端里直接重构500行烂代码(附真实项目截图)

告别复制粘贴&#xff01;用Qwen Code在终端里直接重构500行烂代码&#xff08;附真实项目截图&#xff09; 接手一个满是技术债的项目&#xff0c;就像走进一间多年无人打扫的仓库——到处是随意堆放的代码、重复的逻辑、难以理解的函数命名。更糟的是&#xff0c;传统的AI辅助…...

intv_ai_mk11效果对比:同一Prompt下intv_ai_mk11与Qwen2.5在代码生成任务表现

intv_ai_mk11效果对比&#xff1a;同一Prompt下intv_ai_mk11与Qwen2.5在代码生成任务表现 1. 测试背景与目的 在当今AI技术快速发展的背景下&#xff0c;代码生成已成为大语言模型的重要应用场景之一。本次测试旨在对比intv_ai_mk11与Qwen2.5两款模型在相同Prompt下的代码生成…...

nli-distilroberta-base参数解析与调优指南:关键配置项详解

nli-distilroberta-base参数解析与调优指南&#xff1a;关键配置项详解 1. 引言 如果你正在使用nli-distilroberta-base模型进行自然语言推理任务&#xff0c;可能会遇到这样的困惑&#xff1a;为什么同样的模型在不同机器上运行速度差异这么大&#xff1f;为什么有时候推理结…...

AI辅助开发:模仿PS创意效果,用快马生成智能艺术风格迁移应用代码

最近在做一个艺术风格迁移的小项目&#xff0c;正好用到了InsCode(快马)平台的AI辅助开发功能&#xff0c;整个过程特别顺畅。这个项目的灵感来源于PS的创意效果&#xff0c;但想用更智能的方式来实现类似功能。下面分享一下我的实现思路和经验。 项目构思 最初是想做一个能让普…...

Hunyuan-MT-7B效果实测:Pixel Language Portal对中文网络用语、方言、谐音梗的跨维转码能力分析

Hunyuan-MT-7B效果实测&#xff1a;Pixel Language Portal对中文网络用语、方言、谐音梗的跨维转码能力分析 1. 引言&#xff1a;当翻译遇上像素冒险 在数字时代的语言交流中&#xff0c;传统翻译工具往往显得生硬而缺乏温度。Pixel Language Portal&#xff08;像素语言跨维…...

Linux网络命名空间实战:5分钟搞定veth pair跨命名空间通信

Linux网络命名空间实战&#xff1a;5分钟搭建隔离通信环境 在云计算和容器化技术蓬勃发展的今天&#xff0c;Linux网络命名空间已经成为系统管理员和开发者的必备技能。想象一下&#xff0c;当你需要在单台物理机上同时运行多个需要独立网络环境的服务时&#xff0c;传统方式可…...

PDF-Parser-1.0行业报告:市场分析与技术趋势

PDF-Parser-1.0行业报告&#xff1a;市场分析与技术趋势 1. 引言 每天都有成千上万份行业报告、白皮书和研究文档以PDF格式在企业间流转。这些文档蕴含着宝贵的市场洞察、技术趋势和商业机会&#xff0c;但手动提取和分析这些信息需要耗费大量时间和精力。PDF-Parser-1.0的出…...

Bilibili-Evolved性能优化实战:突破60fps流畅播放全解析

Bilibili-Evolved性能优化实战&#xff1a;突破60fps流畅播放全解析 【免费下载链接】Bilibili-Evolved 强大的哔哩哔哩增强脚本 项目地址: https://gitcode.com/gh_mirrors/bi/Bilibili-Evolved Bilibili-Evolved作为强大的哔哩哔哩增强脚本&#xff0c;通过深度优化浏…...

敏捷团队沟通技巧:减少冲突的5个方法

在敏捷开发环境中&#xff0c;软件测试从业者常面临跨职能冲突的挑战。数据显示&#xff0c;超过70%的项目延迟源于沟通不畅&#xff0c;尤其在测试与开发团队之间&#xff0c;角色目标错位&#xff08;如开发侧重快速交付&#xff0c;测试聚焦风险防控&#xff09;易引发摩擦。…...

s2-pro实战落地:跨境电商产品介绍多语种语音批量生成

s2-pro实战落地&#xff1a;跨境电商产品介绍多语种语音批量生成 1. 场景痛点与解决方案 跨境电商企业面临一个共同挑战&#xff1a;如何高效地为全球不同语言市场的产品生成专业语音介绍。传统方案需要雇佣多语种配音人员&#xff0c;成本高、周期长&#xff0c;且难以保证语…...