c++速成笔记
可变数组
#include <iostream>//读写 #include <vector> using namespace std; int main() {//可变数组 vector <int> vNums(2);//关键1 vNums[0]=11; vNums[1]=2; vNums.push_back(3);//关键2 cout<<"Vector Size:"<<vNums.size()<<endl; //输出数组长度 return 0; }
可变字符串,字符串输出,赋值
#include <iostream>//读写 #include <string>//字符串 #include <vector> #include <sstream> //#include<bits/stdc++.h> using namespace std; int main() { vector <string> words; stringstream ss ("Some Random Words"); string word; while(getline(ss,word ,' ')) //ss复制到word上 遇到空格暂停 { words.push_back(word);//复制到尾部后面 } for(int i=0;i<word.size();i++) { cout<< words[i]<<endl; } return 0; }
//创建随机数
srand(time(NULL));
字符串
#include <iostream>//读写 #include <string>//字符串 #include <vector> #include <sstream> #include<bits/stdc++.h> using namespace std; int main() { string str1 = "I,m a string"; cout << "let : "<< str1[0] << endl; // cout << "Last : " << str1.back() << endl; // cout << "Length : "<< str1.length() << endl; //获取字符串长度 string str2 = str1; //完全复制 string str3(str2, 4); //复制str2前 4 位 到str3 string str4 = str1 + " and your not "; //字面意思 str4.append("!"); //在str4后面加上 ! cout <<"New String :" <<str4 << endl; //输出 str4.erase(12,str4.length() - 1); //没听懂,关于删除的 cout <<"New String : " <<str4 << endl; // if(str4.find("string")!=string::npos) //find str4中有没有string 并且返回位置(数字) //npos字符串的最后一个字符位置 cout<<"String Index:"<< str4.find ("string")<<endl; //输出位置(数字) cout << "Substring : "<<str4.substr(6,7) <<endl; //获取字串,从第六个字符,长度是7 string strNum = to_string(1+2); //将整数转化为字符串 cout << "I,m a String : " <<strNum<<endl; char letterZ = 'z'; char num5 = '5'; char return 0; }
数学函数
引用运算符号
共享地址
指针只是存储了地址
#include <iostream> #include <string> #include <vector> #include <sstream> #include<bits/stdc++.h> using namespace std; void AssingnAge(int *age) { *age=18; } int main() { int age = 43; AssingnAge(&age); cout <<age<<endl; return 0; }
函数宏
#include <iostream> #include <string> #include <vector> #include <sstream> #include<bits/stdc++.h> using namespace std; #define PI 3.1415926 #define AREA_CIRCLE(radius) (PI * pow(radius , 2)) int main() { cout << "Circle Area"<< AREA_CIRCLE(5)<<endl; return 0; }
模板函数
template <typename T>
容器
双端队列
一个两端膨胀或收缩的动态数组
#include<bits/stdc++.h>//万能头 #include <deque>//双端队列头 #include <iterator>//遍历头 using namespace std; int main() { deque<int >nums={1,2,3,4}; nums.push_front(0);//在头部添加0 nums.push_back(5);//在尾部添加5 for(int x:nums) cout << x<<endl;//遍历输出所有元素 cout<<nums[0]<<endl;//像普通数组一样单独输出 return 0; }
迭代器
用于指向容器内存地址
#include <bits/stdc++.h> using namespace std; int main() { vector<int > nums= {1,2,3,4}; vector<int>::iterator itr; for(itr = nums.begin(); itr<nums.end(); itr++) //itr从nums开头遍历到尾 { cout<<*itr<<endl;//注意* } vector<int> ::iterator int2 = nums.begin(); //定义迭代器,并初始化为在nums开头 advance(itr2,2);//itr2迭代器每次向后移动2格 cout<<*itr2<<endl; auto itr3 = next(itr2,1); cout<<*itr3 <<endl; auto itr4 = prev(itr2,1);//退回一个itr2 cout<<*itr4<<endl; vector<int >nums3 ={1,4,5,6}; vector<int> nums4 ={2,3}; auto itr5 =nums3.begin(); advance(itr5,1); copy(nums4.begin(),nums4.end(),//copy insert(nums3,itr5)); for(int &i:nums3) cout<<i<<endl; return 0; }
本文作者:kingwzun
本文链接:https://www.cnblogs.com/kingwz/p/15187917.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步