MFC之CString类及其成员函数用法详解

news2024/12/28 3:34:57

        

        CString是 CStringT(属于MFC 和 ATL 之间共享的类) 的类模板的专用化,没有基类。在头文件atlstr.h中可以看到CString的定义:

CString对象由可变长度的一队字符组成。CString是基于TCHAR数据类型的对象。如果在你的程序中定义了符号_UNICODE,则TCHAR被定义为类型wchar_t,即16位字符类型;否则,TCHAR被定义为char,即8位字符类型。在UNICODE方式下,CString对象由16位字符组成。非UNICODE方式下,CString对象由8位字符组成。

        一 CString的成员函数

CString构造函数 构造函数用用来以指定的数据初始化一个新的CString对象。CString 的构造函数原型如下:

CString( );
CString( const CString& stringSrc );
  throw( CMemoryException );
CString( TCHAR ch, int nRepeat = 1 );
  throw( CMemoryException );
CString( LPCTSTR lpch, int nLength );
  throw( CMemoryException );
CString( const unsigned char* psz );
  throw( CMemoryException );
CString( LPCWSTR lpsz );
  throw( CMemoryException );
CString( LPCSTR lpsz );
  throw( CMemoryException );
参数:

stringSrc

一个已经存在的CString对象,它要被拷贝到此CString对象中。

ch

要被重复nRepeat次的单个字符。

nRepeat

要对ch重复的次数。

lpch

一个指向字符数组的指针,该字符数组的长度是nLength,不包括结尾的空字符。

nLength

pch中的字符的个数。

psz

一个要被拷贝到此CString对象中去的以空字符结尾的字符串。

lpsz

一个要被拷贝到此CString对象中去的以空字符结尾的字符串。

        CString的其他功能函数 除构造函数外CString类还有字符串处理、分配/串联、比较、字符提取、字符搜索、转换、归档存储、缓存区访问等功能函数,如下:

        GetLength 返回CString对象中的字符数。对多字节字符,按8位字符计算;即在一个多字节字符中一个开始和结束字节算作两个字符。原型如下:

int GetLength( ) const;

        IsEmpty 测试一个CString对象中是否不含有字符,其原型如下:

BOOL IsEmpty( ) const;

        Empty 强制一个字符串的长度为0。其原型如下:

void Empty( );

        GetAt 获取指定位置字符。其原型如下:

       TCHAR GetAt( int nIndex ) const;

        SetAt 设置指定位置字符。其原型如下:

void SetAt( int nIndex, TCHAR ch );

        运算符重载

        CString重载了 赋值运算符:=,算术运算符:+,+=,比较算术符:==,>, <, >=,<=,!=。其操作结果类似于数值的算术运算以比较运算。

        Compare 比较两个字符串(大小写敏感),其原型如下:

int Compare( LPCTSTR lpsz ) const;

如果字符串是一样的则返回零;如果CString对象小于lpsz则返回值<0,如果CString对象大于lpsz则返回值>0。

        CompareNoCase 比较两个字符串(不区分大小写)。其原型如下:

int CompareNoCase( LPCTSTR lpsz ) const;

如果字符串是一样的(不区分大小写)则返回零;如果CString对象小于lpsz(不区分大小写)则返回值<0,如果CString对象大于lpsz(不区分大小写)则返回值>0。

        Collate 比较两个字符串(大小写敏感,使用现场特别信息),其原型如下:

int Collate( LPCTSTR lpsz ) const;

如果两个字符串是一样的,则返回零;如果CString对象小于lpsz则返回值<0;如果此CString对象大于lpsz则返回值>0。

        CollateNoCase 比较两个字符串(不区分大小写,使用现场特别信息),其原型如下:

int CollateNocase( LPCTSTR lpsz ) const;

如果字符串是一样的(不区分大小写)则返回零值;如果CString对象小于lpsz(不区分大小写)则返回值<0,如果CString对象大于lpsz(不区分大小写)则返回值>0。

        Mid 从字符串中提取部分字符串,其原型如下:

CString Mid( int iFirst ) const;
              throw( CMemoryException );

              CString Mid( int iFirst, int iCount ) const;
                     throw( CMemoryException );

参数:

iFirst

此CString对象中的要被提取的子串开始位置在源字符串中的位置索引。

iCount

要从此CString对象中提取的字符数。如果没有提供这个参数,则字符串的其余部分都被提取。

          Left      提取字符串的左边部分,其原型如下:

          CString Left( int nCount ) const;

throw( CMemoryException );

               nCount

要从这个CString对象中提取的字符数。

返回一个包含指定范围字符的拷贝的CString对象。注意,返回的CString对象可能是空的。

             

             Right     提取字符串的右边部分,其原型如下:

CString Right( int nCount ) const;

        throw( CMemoryException );

               nCount

要从这个CString对象中提取的字符数。

返回一个包含指定范围字符的拷贝的CString对象。注意,返回的CString对象可能是空的。

       SpanIncluding 截取字符串一段连续字符或全部字符组成的字符串作为返回的子字符串,子字符开始于字符串中的第一个字符,子字符串中的字符是参照字符串中的字符并且排序相同。其原型如下:

CString SpanIncluding( LPCTSTR lpszCharSet ) const;
  throw( CMemoryException );

参数: lpszCharSet 参照字符串。

       SpanExcluding 截取字符串一段连续字符串,子字符开始于字符串中的第一个字符,且子字符串中的不包含参照字符串中的字符。其原型如下:

CString SpanExcluding( LPCTSTR lpszCharSet ) const;
              throw( CMemoryException );

参数: lpszCharSet 参照字符串。

        MakeUpper 将字符串中的所有字符转换为大写字符。其原型如下:

 void MakeUpper( );

        MakeLower 将字符串中的所有字符转换为小写字符。其原型如下:

 void MakeLower( );

        MakeReverse 将字符串中的字符以倒序排列,其原型如下:

 void MakeReverse( );

    Replace 用其它字符替换指定的字符。其原型如下:

int Replace( TCHAR chOld, TCHAR chNew );

int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew );

参数:

chOld

要被chNew替换的字符。

chNew

要用来替换chOld的字符。

lpszOld

一个指向字符串的指针,该字符串包含了要被lpszNew替换的字符。

lpszNew

一个指向字符串的指针,该字符串包含了要用来替换lpszOld的字符。

返回值:返回被替换的字符数。如果这个字符串没有改变则返回零。

        Remove  去除字符串中指定的字符,其原型如下:

int Remove ( TCHAR ch );

ch

要从一个字符串中去除的字符。   

返回值:返回从字符串中移走的字符数。如果字符串没有改变则返回零。

        Insert   在字符串中的给定索引处插入一个字符或一个子字符串。其原型如下:

int Insert( int nIndex, TCHAR ch );

throw( CMemoryException );

int Insert( int nIndex, LPCTSTR pstr );     throw( CMemoryException );

参数:

nIndex

某个字符的索引,在这个字符的前面将要进行插入操作。

ch

要插入的字符。

pstr

一个指向要被插入的子字符串的指针。

返回值:返回被改变的字符串的长度。
        Delete 从一个字符串中删除一个或多个字符。其原型如下:

int Delete( int nIndex, int nCount = 1);
        throw( CMemoryException ) ;

参数:

nIndex

要删除的第一个字符的索引。

nCount

要删除的字符数。

返回值:返回已改变的字符串的长度。

        Format 格式化字符串,其原型如下:

void Format( LPCTSTR lpszFormat, ... );

void Format( UINT nFormatID, ... );
参数:

lpszFormat

一个格式控制字符串。

nFormatID

包含格式控制字符串的字符串资源标识符。

        FormatV    格式化字符串,其原型如下:

void FormatV( LPCTSTR lpszFormat, va_list argList );
参数:

lpszFormat

一个格式控制字符串。

argList

要传递的参数列表。

        TrimLeft 去除字符串中左边指定字符,其原型如下:

CStringT& TrimLeft(XCHAR chTarget );

 CStringT& TrimLeft(PCXSTR pszTargets );

 CStringT& TrimLeft( );//去除第一个字符最左边空格

  参数:

          chTarget  含有要去除字符的字符串。

          pszTargets 含有要去除字符的字符串的指针。

         TrimRight 去除字符串中指定字符,其原型如下:

CStringT& TrimRight(XCHAR chTarget );

 CStringT& TrimLeftRight(PCXSTR pszTargets );

CStringT& TrimRight( );//去除第一个字符最右边空格

参数:

       chTarget  含有要去除字符的字符串。

        pszTargets 含有要去除字符的字符串的指针。

    Trim 截去字符串中字符,返回截去字符后的字符串,其原型如下:

CStringT& Trim(XCHAR chTarget );

CStringT& Trim(PCXSTR pszTargets );

CStringT& Trim( );//去除第一个字符前面的空格

参数:

        chTarget 需去除的字符。

        pszTargets 含有需去除字符的字符串指针。

    Find 查找字符串中的字符或字符串。其原型如下:
int Find(PCXSTR pszSub,int iStart=0) const throw( );
int Find(XCHAR ch,int iStart=0) const throw( );
参数:
     pszSub 搜索的子字符串。
     iStart 字符的索引开始搜索字符串中使用或0开始。
     ch  搜索的单个字符。
返回值:第一个字符的从零开始的索引(本 CStringT 对象的请求匹配的子字符串或字符);-1,如果未找到子字符串或字符。
    ReverseFind 方向(从末尾开始)查找字符,返回查到字符的在字符串中的位置位置索引。其原型如下:
        int ReverseFind(XCHAR ch) const throw();
    FindOneOf 查找字符串中与指定字符相匹配的第一个字符。其原型如下:
int FindOneOf(PCXSTR pszCharSet) const throw( );
参数:
    pszCharSet  含匹配字符的字符串。
返回值:返回找到字符的位置索引。如果没找到,则返回-1.
     GetBuffer 返回一个指向CString对象内存缓冲区的指针。其原型如下:
LPTSTR GetBuffer( int nMinBufLength );
        throw( CmemoryException)
参数:
     nMinBufLengthtion 字符缓冲区的以字符数表示的最小容量。
     GetBufferSetLength 返回一个指向CString对象内存缓冲区的指针,字符串被截断为指定的长度 。其原型如下:
        LPTSTR GetBufferSetLength( int nNewLength );
                   throw( CMemoryException );
参数: 

nNewLength

此CString字符缓冲区的以字符数表示的精确容量。

    ReleaseBuffer 释放对GetBuffer所返回的缓冲区的控制权。其原型如下:
void ReleaseBuffer( int nNewLength = -1 );
参数: 

nNewLength

此字符串的以字符数表示的新长度,不计算结尾的空字符。如果这个字符串是以空字符结尾的,则参数的缺省值-1将把CString的大小设置为字符串的当前长度。

    FreeExtra 通过释放原先为此字符串分配的额外内存来删除此字符串对象的额外开销。其原型如下:
void FreeExtra( );
    LockBuffer 使引用计数无效并保护缓冲区内的数据,其原型如下
LPTSTR LockBuffer( );
返回值:返回一个指向CString对象的指针,或者是一个以NULL结尾的字符串
    UnLockBuffer 使引用计数有效并释放缓冲区中的数据,此成员函数用来解锁先前通过调用LockBuffer加锁的的缓冲区。其原型如下:
    void UnlockBuffer( );

        二 CString成员函数用法示例

        下面用一个示例程序来演示CString类常用成员函数的用法。新建一个控制台应用程序,由于标准C++的std::cout 或C语言的printf 函数并不直接支持Unicode字符串(如UTF-16的wchar_t*字符串),在项目属性的高级选项中将字符集设置为多字节字符集。

在程序中加入如下代码:

// CStringTest.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。

#include <atlstr.h>
#include <iostream>



using namespace std;

int main()
{
    CString mstr;           //CString 对象声明
    mstr = "同学,你好!";   //赋值测试
    cout << mstr << endl;

    return 0;
}

试运行,结果如下:

CString 构造函数示例

        注释掉main函数中的原代码,加入新代码,如下:

int main()
{
    /*
    CString mstr;           //CString 对象声明
    mstr = "同学,你好!";   //赋值示例
    cout << mstr << endl;
    */

    //CString构造函数示例
    CString* pstr = new CString(); //test CString()
    *pstr = "Hello, World!";
    cout << *pstr << endl;

    CString mstr1(*pstr);        //test CString( const CString& stringSrc );
    cout <<"mstr1: " << mstr1 << endl;

    CString mstr2((TCHAR)'A',10); //CString( TCHAR ch, int nRepeat = 1)
    cout <<"mstr2: " << mstr2 << endl;

    CString mstr3("ABCDEFGHIJKLMVOPQRST", 10); //test CString( LPCTSTR lpch, int nLength )
    cout << "mstr3: " << mstr3 << endl;

    char str[] = "Hello, MFC!";
    CString mstr4(str);                       //test CString( const unsigned char* psz )
    cout << "mstr4: " << mstr4 << endl;

    WCHAR str1[11];
    str1[10] = 0;
    for (int i = 0; i < 10; i++)
    {
        str1[i] = 'A' + i;
    }
    CString mstr5(str1);                    //test CString( LPCWSTR lpsz )
    cout << "mstr5: " << mstr5 << endl;

    TCHAR str2[11];
    str2[10] = 0;
    for (int i = 0; i < 10; i++)
    {
        str2[i] = 'a' + i;
    }
    CString mstr6(str2);                    //test CString( LPCSTR lpsz )
    cout << "mstr6: " << mstr6 << endl;

    delete pstr;
    return 0;
}

试运行,结果如下:

        CString 函数 GetLength,IsEmpty,Empty,GetAt,SetAt示例

注释掉main函数中原有代码,加入测试代码,如下:

 // CString 函数 GetLength,IsEmpty,Empty,GetAt,SetAt示例
 CString mstr7("CString Function   Test!");
 int len;
 len = mstr7.GetLength();
 TCHAR mc = mstr7.GetAt(len-1);
 mstr7.SetAt(len-7, (TCHAR)'A');
 cout << "len: " << len << endl;
 cout << "mc: " << mc << endl;
 cout << "mstr7: " << mstr7 << endl;

 mstr7.Empty();
 if (mstr7.IsEmpty())
     cout << "mstr7 is empty! " << endl;
 else
     cout << "mstr7:" << mstr7 << endl;
 

 return 0;

试运行,结果如下:

        CString 赋值运算符:=,算术运算符:+,+=,比较算术符:==,>, <, >=,<=,!= 示例

注释掉main函数中原有代码,加入测试代码,如下:

 //CString 赋值运算符:=,算术运算符:+,+=,比较算术符:==,>, <, >=,<=,!= 示例
 CString mstr8;
 mstr8 = "ABCD";
 CString mstr9;
 mstr9 = mstr8 + "E";
 mstr8 += "E";
 cout << "mstr8: " << mstr8 << endl;
 cout << "mstr9: " << mstr8 << endl;

 if (mstr8 == mstr9)
 {
     cout << "mstr8 == mstr9" << endl;
     mstr9 += "F";
 }
 
 if (mstr8 != mstr9)
 {
     if (mstr8 > mstr9)
         cout << "mstr8 > mstr9" << endl;
     else
         cout << "mstr8 < mstr9" << endl;
 }

 return 0;

试运行,结果如下:

         字符串比较函数Compare, CompareNocase,Collate,CollateNocase示例

注释掉main函数中原有代码,加入测试代码,如下:

 //字符串比较函数Compare, CompareNocase,Collate,CollateNocase示例
 CString mstr10 = "ABCDEfg";
 CString mstr11 = "ABCDEfgh";

 int res_c = mstr10.Compare(mstr11);
 cout <<"mstr10 compare mstr11:" << res_c << endl;

 res_c = mstr11.Compare(mstr10);
 cout << "mstr11 compare mstr10:" << res_c << endl;


 res_c = mstr10.Collate(mstr11);
 cout << "mstr10 collate mstr11:" << res_c << endl;

 res_c = mstr11.Collate(mstr10);
 cout << "mstr11 collate  mstr10:" << res_c << endl;

 cout << "New Cindition:" << endl;

 mstr11 = mstr10;

 res_c = mstr10.Compare(mstr11);
 cout << "mstr10 compare mstr11:" << res_c << endl;

 res_c = mstr11.Compare(mstr10);
 cout << "mstr11 compare mstr10:" << res_c << endl;


 res_c = mstr10.Collate(mstr11);
 cout << "mstr10 collate mstr11:" << res_c << endl;

 res_c = mstr11.Collate(mstr10);
 cout << "mstr11 collate  mstr10:" << res_c << endl;

 return 0;

试运行,结果如下:

        CString提取字符串函数Mid,Left,Right, SpanIncluding, SpanExcluding函数示例

注释掉main函数中原有代码,加入测试代码,如下:

 //CString提取字符串函数Mid,Left,Right, SpanIncluding, SpanExcluding函数示例
 CString mStr = "OpenCV Graph API (or G-API) is a new OpenCV module targeted to make regular image processing fast and portable.";
 CString mStr1 = mStr.Mid(12);
 cout << "mStr1 1th: " << mStr1 << endl;

 mStr1 = mStr.Mid(12,16);
 cout << "mStr1 2th: " << mStr1 << endl;

 mStr1 = mStr.Left(12);
 cout << "mStr1 3th: " << mStr1 << endl;

 mStr1 = mStr.Right(18);
 cout << "mStr1 4th: " << mStr1 << endl;

 mStr1 = mStr.SpanIncluding("OpenCV Graph API (or G-API) is a new OpenCV module");
 cout << "mStr1 5th: " << mStr1 << endl;

 mStr1 = mStr.SpanExcluding("i");
 cout << "mStr1 6th: " << mStr1 << endl;

 return 0;

试运行,结果如下:

       CString 字符串大小写转换函数MakeUpper,MakeLower及倒序排列MakeReverse用法示例

注释掉main函数中原有代码,加入测试代码,如下:

 //CString 字符串大小写转换函数MakeUpper,MakeLower及倒序排列MakeReverse用法示例
 CString mStr = "OpenCV Graph API (or G-API) is a new OpenCV module targeted to make regular image processing fast and portable.";

 mStr.MakeUpper();
 cout << "mStr 1th: " << mStr << endl;

 mStr.MakeLower();
 cout << "mStr 2th: " << mStr << endl;

 mStr.MakeReverse();
 cout << "mStr 3th: " << mStr << endl;

 return 0;

试运行,结果如下:

        CString 替换字符(串)Replace,插入字符Insert,去除字符Remove,Delete函数, 用法示例

注释掉main函数中原有代码,加入测试代码,如下:

 // CString 替换字符(串)Replace,插入字符Insert,去除字符(串)Remove,Delete函数用法示例
 CString mStr = "ABCD";

 mStr.Replace('D', 'E');
 cout << "mStr 1th: " << mStr << endl;

 mStr.Insert(3, "D");
 cout << "mStr 2th: " << mStr << endl;

 mStr.Remove('D');
 cout << "mStr 3th: " << mStr << endl;

 mStr.Insert(3,'D');
 cout << "mStr 4th: " << mStr << endl;

 mStr.Delete(3, 2);
 cout << "mStr 5th: " << mStr << endl;

 return 0;

试运行,结果如下:

        CString 类格式化字符串函数Format,FormatV函数的用法示例

注释掉main函数中原有代码,加入测试代码,如下:

//CString 类格式化字符串函数Format,FormatV函数的用法示例
CString mStr = "PI = ";

mStr.Format(_T("%s%.2f"), mStr,3.14);
cout << "mStr 1th: " << mStr << endl;

mStr.Format(_T("当前点的坐标为:(%.2f,%.2f)"), 12.35,47.28);
cout << "mStr 2th: " << mStr << endl;

   
char tem = 'a';
va_list args =&tem ;
mStr.FormatV(_T("%c"),args);
cout << "mStr 3th: " << mStr << endl;

return 0;

试运行,结果如下:

        CString类截去字符串中指定字符函数TrimLeft,TrimRight, Trim用法示例

注释掉main函数中原有代码,加入测试代码,如下:

//CString类截去字符串中指定字符函数TrimLeft,TrimRight, Trim用法示例
CString mStr = "OpenCV Graph API (or G-API) is a new OpenCV module targeted to make regular image processing fast and portable.";
CString mStr1 = mStr.TrimLeft(_T("OpenCV"));
cout << "mStr1 1th: " << mStr1 << endl;

mStr1 = "";
mStr1 = mStr.TrimRight(_T(" and portable."));
cout << "mStr1 2th: " << mStr1 << endl;

mStr = "  ABCD";
mStr1 = mStr.Trim();
cout << "mStr1 2th: " << mStr1 << endl;

return 0;

试运行,结果如下:

        CString类查找字符串中字符函数Find,ReverseFind,FindOneof用法示例

注释掉main函数中原有代码,加入测试代码,如下:

//CString类查找字符串中字符函数Find,ReverseFind,FindOneof用法示例
CString mStr = "OpenCV Graph API (or G-API) is a new OpenCV module targeted to make regular image processing fast and portable.";
int index = mStr.Find("a");
cout << "index 1th:" << index << endl;

index = mStr.Find('a');
cout << "index 2th:" << index << endl;
   
index = mStr.ReverseFind('a');
cout << "index 3th:" << index << endl;

index = mStr.FindOneOf("is");
cout << "index 3th:" << index << endl;

return 0;

试运行,结果如下: 

CString类与缓存相关的函数getBuffer,                                                                                                           GetBufferSetLength,ReleaseBuffer,FreeExtra,LockBuffer,Unlockbuffer用法示例

注释掉main函数中原有代码,加入测试代码,如下:

//GetBufferSetLength, ReleaseBuffer, FreeExtra, LockBuffer, Unlockbuffer用法示例
CString mStr = "Hello, World";
cout << mStr << endl;

LPTSTR buffer = mStr.GetBuffer(0);
lstrcpy(buffer, _T("Hello, MFC!"));
mStr.FreeExtra();
mStr.LockBuffer();
cout << mStr << endl;

mStr.UnlockBuffer();
buffer = mStr.GetBuffer(0);
lstrcpy(buffer, _T("Hello, Everybody!"));
mStr.ReleaseBuffer();
cout << mStr << endl;

return 0;

试运行,结果如下: 

本博文到此结束,示例源码已上传到CSDN,下载链接为:https://download.csdn.net/download/billliu66/89727356​​​​​​​


 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode 300. 最长递增子序列 记忆化搜索、贪心二分 C++实现

Leetcode 300. 最长递增子序列 问题&#xff1a;给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是…

猫头虎推荐:2024国内好用的PyPIP换源库

猫头虎推荐&#xff1a;2024国内好用的PyPIP换源库&#x1f525;&#x1f680; 在国内使用 Python 时&#xff0c;由于访问官方的 PyPI 速度较慢甚至无法连接&#xff0c;选择一个可靠的国内 PyPI 镜像源至关重要&#x1f4c8;。为了更高效地完成项目开发&#xff0c;今天猫头…

BC172 牛牛的排列数(c 语言)

1.我们先输入n m的数字&#xff0c;因为n!/(n-m)!的阶乘。即4&#xff01;4*3*2*1&#xff0c;2&#xff01;2*1&#xff0c;4&#xff01;/2&#xff01;12.或者4&#xff01;4*3*2&#xff01;。 #include<sdtio.h> int main() {int n 0;int m 0;long long a 1;whi…

Leetcode面试经典150题-55.跳跃游戏

解法都在代码里&#xff0c;不懂就留言或者私信 class Solution {public boolean canJump(int[] nums) {/**如果就一个位置&#xff0c;你本来就在这&#xff0c;肯定可以跳到*/if(nums.length 1) {return true;}/**这个题的解题思路是遍历数组&#xff0c;如果当前位置不在之…

Linux网络——从《计算机网络》到网络编程

文章目录 从《计算机网络》到网络编程从计算机到计算机网络解决问题网络与计算机系统计算机网络的传输流程IP地址与MAC地址 从《计算机网络》到网络编程 科班的同学大多学过计算机网络&#xff0c;而非科班的同学也多多少少听说过一些 计算机网络体系十分繁杂且精妙&#xff…

毕业论文任务书怎么写?超详细指导带你轻松搞定!

AIPaperGPT&#xff0c;论文写作神器~ https://www.aipapergpt.com/ 毕业论文任务书是毕业论文的“指路明灯”&#xff0c;是论文写作的路线规划。很多同学把毕业论文任务书当作形式化的文件草草了事&#xff0c;其实不然。任务书不仅是你整个论文写作的起点&#xff0c;也是确…

艺术体操与骑行的完美协奏:维乐Angel Rise+坐垫,激情与力量的展现!

在艺术体操的赛场上&#xff0c;每一次旋转、每一次跳跃&#xff0c;都凝聚着运动员的力量与技巧。这不仅是一场速度与激情的碰撞&#xff0c;更是一次力量与技巧的交融。正如在骑行的领域里&#xff0c;VELO Angel Rise坐垫以它独特的一体成型设计和技术&#xff0c;为骑行者们…

【论文分享精炼版】 sNPU: Trusted Execution Environments on Integrated NPUs

今天在COMPASS分享了之前写的一个博客&#xff0c;做了进一步的提炼总结&#xff0c;大家可以看看原文~ 今天分享的论文《sNPU: Trusted Execution Environments on Integrated NPUs》来自2024年ISCA&#xff0c;共同一作为Erhu Feng以及Dahu Feng。并且&#xff0c; 这两位作…

《逆水寒手游》在苹果官网亮眼,国产武术游戏激起海外玩家热情

易采游戏网9月10日消息&#xff1a;《逆水寒手游》自上线以来&#xff0c;以其精致的画面、引人入胜的剧情以及创新的玩法&#xff0c;迅速在国内外游戏市场中占据一席之地。如今&#xff0c;这款备受期待的手游更是亮相全球科技巨头苹果公司iPhone16Pro的官网&#xff0c;为全…

lunix磁盘IO await until问题实战排查-实用命令集合

1、Linux查看磁盘读写次数 iostat -x 1 这个命令可以查询磁盘当前平均读写的次数、读写&#xff0c;以及是否await util严重。 2、查看磁盘TPS和读写数据量大小 iostat -d -k 1 10 这个命令可以查看磁盘的tps和读写数据量大小。 -d&#xff1a;显示某块具体硬盘&#x…

已知两圆的圆心半径,求交点坐标——CAD VBA 解决

如下图&#xff0c; dwg图中若干图形&#xff0c;运行代码后提示选择两个圆&#xff0c;然后判断两个圆位置关系和相交点坐标: 本例难点在于通过几何知识求出交点坐标。 几何背景 假设有两个圆&#xff1a; - 圆1&#xff1a;圆心 ( O_1(x_1, y_1) )&#xff0c;半径 ( r_1 ) …

关于支付宝小程序多规格选项的时候点击不起反应的原因分析及修改方法

解决方案&#xff1a; watch的时候&#xff0c;对于对象的赋值&#xff0c;最好用深拷贝&#xff0c;即如下图&#xff1a; watch:{ row: function (nv, ov) {var that this;that.indata.row JSON.parse(JSON.stringify(nv));//如果是对象&#xff0c;请用深入的for (va…

《使用 LangChain 进行大模型应用开发》学习笔记(二)

前言 本文是 Harrison Chase &#xff08;LangChain 创建者&#xff09;和吴恩达&#xff08;Andrew Ng&#xff09;的视频课程《LangChain for LLM Application Development》&#xff08;使用 LangChain 进行大模型应用开发&#xff09;的学习笔记。由于原课程为全英文视频课…

ReLU再进化ReLUMax:自动驾驶的瞬态容错语义分割

ReLU再进化ReLUMax&#xff1a;自动驾驶的瞬态容错语义分割 Abstract 度学习模型在自动驾驶感知中至关重要&#xff0c;但其可靠性面临着算法限制和硬件故障的挑战。我们通过研究语义分割模型的容错性来应对后者。使用已有的硬件故障模型&#xff0c;我们在准确性和不确定性方…

视频号接口列表

目前已有的接口列表&#xff1a; 账号搜索 视频搜索 直播搜索 获取作者信息和作品列表 视频解密并下载 获取视频详情 获取视频评论 获取视频评论的子评论 作品喜欢 作品点赞 作品评论 对作品评论进行评论 关注作者 加入直播间 获取直播间弹幕消息 发送弹幕消息 获取直播间商品…

力扣474-一和零(Java详细题解)

题目链接&#xff1a;474. 一和零 - 力扣&#xff08;LeetCode&#xff09; 前情提要&#xff1a; 因为本人最近都来刷dp类的题目所以该题就默认用dp方法来做。 最近刚学完01背包&#xff0c;所以现在的题解都是以01背包问题为基础再来写的。 如果大家不懂01背包的话&#…

运维问题0002:SAP多模块问题-SAP系统程序在执行时,跳出“加急快件”窗口,提示:快件文档“更新已终止”从作者***收到

1、问题描述 近期收到2起业务报障&#xff0c;均反馈在SAP执行程序时&#xff0c;弹出“加急快件”窗口&#xff0c;导致操作的业务实际没有更新完成。 1&#xff09;业务场景一&#xff1a;设备管理部门在操作事务代码&#xff1a;AS02进行资产信息变更时&#xff0c;保存正常…

面试官:为什么 Redis 6.0 之后引入多线程?

大家好&#xff0c;我是大明哥&#xff0c;一个专注「死磕 Java」系列创作的硬核程序员。 回答 Redis 的性能瓶颈从来都不是 CPU&#xff0c;是网络I/O 和内存。 内存好解决&#xff0c;加机器内存和优化数据结构。 网路 I/O 的优化才是大头&#xff0c;因为读写网络的 read…

最新大厂薪资职级表,我酸了。。

大家好&#xff01;我是鸭鸭&#xff01; 又到周末&#xff0c;让我们轻松一下&#xff0c;来吃吃瓜&#xff01; 大厂往往会提供具有竞争力的薪资和福利待遇&#xff0c;正值秋招&#xff0c;相关热帖也是又被翻了出来。鸭鸭今天就刷到一个帖子&#xff0c;据说是几家互联网…

基于构件开发-系统架构师(六十四)

1&#xff08;&#xff09;常见的功能包括版本控制&#xff0c;变更管理&#xff0c;配置状态管理&#xff0c;访问控制和安全控制等。 A软件测试工具 B版本控制工具 C软件维护工具 D软件配置管理工具 解析&#xff1a; 软件过程工具分为&#xff1a;软件开发工具&#xf…