c++笔记3
一基本语法:
1.1 字符串:支持标准C的 const char* pch=0/"";//不指向任何对象和指向空字符串。C++提供的string类可提供字符串的所有操作,最好是融合操作,string str; const char *pc = "a character array"; str=pc;//先后关系很重要,这里是将C字符串扩展至C++类型
;C++串向C串转化必须用显示函数const char *str = s1.c_str(); :
1.1.1判断空:if ( st.empty() ) 或者if ( ! st.size() )
1.1.2赋值:直接用赋值“=”或者初始化时的拷贝string st3( st );
1.1.3判断相等、字符串拼接等直接用== += + + +等
1.1.4字符串中的字符替代:用迭代器replace( str.begin(), str.end(), '.', '_' );
1.2向量vector:有2种用法分别是数组习惯和 STL 习惯 :
1.2.1数组用法:vector< int > ivec( 10, -1 ); //相当于int ivec[10]={-1};或者另一种初始化方法:int ira[10]={0,-1,-2,-3,-4,-5,-6,-7,-8,-9}; vector< int > ivec(ira,iar+10 );或者直接用另个向量赋值本向量;
1.2.2STL用法:
vector< string > text; //空Vector
string word;
while ( cin >> word ) {
text.push_back( word );//添加元素个数和内容
// ...
}
cout << "words read are: \n";
for ( vector<string>::iterator it = text.begin();//迭代器输出,it为指针类型。
it != text.end(); ++it )
cout << *it << ' ';
cout<<endl;
1.3复数(通过操作符重载支持加减乘除,用cout输出时是"(a+bi)"格式:如a+bi,complex< float /double/long double > purei( a, b ); complex< float > real_num(a ); //虚部为0 complex< float > zero; zero//0,
1.4位操作bitset:#include <bitset> 支持将某一位/全部置位、清零、翻转、读某位、判断某位是否为0,二进制字符串赋值、转字符串和转long型整数等。
1.5 pair类型:类似于创造键值对
typedef pair< string, string > Authors;
Authors proust( "marcel", "proust" );
Authors joyce( "james", "joyce" );
Authors musil( "robert", "musil" );
1.6链接指示符 extern “C” :告诉链接器后面的语言是用某种语言编写的,单一语句一般放在头文件中。
1.7 函数的指针和指向函数的指针数组:typedef 返回值类型 (*pfuntypedef)(参数列表), ppfuntypedef funarry[]={fun1,fun2}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2014-08-08 C数据结构与算法-算法复杂度