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

企业数字化转型今日头条搜索优化

企业数字化转型,今日头条搜索优化,sm做任务的网站,佛山新网站建设如何目录 什么是STL? vector容器 构造函数 赋值操作 vector容量和大小 vector存放内置数据类型 vector存放自定义数据类型 存放指针 vector容器嵌套容器 string容器 构造函数 赋值操作 字符串拼接 查找和替换 string字符串比较 string字符存取 string插…

目录

什么是STL?

vector容器

构造函数

赋值操作

vector容量和大小

vector存放内置数据类型

vector存放自定义数据类型

存放指针

vector容器嵌套容器

string容器

构造函数

赋值操作

字符串拼接

查找和替换

string字符串比较

string字符存取

string插入和删除

string子串


什么是STL?

stl中的东西可以重复利用,stl是为了建立数据结构与算法的一套标准

stl分为容器,算法,迭代器

stl六大组件:容器,算法,迭代器,仿函数,适配器,空间配置器

vector容器

可以理解为比较强大的数组

构造函数

#include<iostream>
#include<vector>
using namespace std;
void print(vector<int>& a) {for (int i = 0; i < a.size (); i++) {cout << a[i] << " ";}cout << endl;
}
int main() {//默认构造vector<int> a;for (int i = 0; i < 10; i++) {a.push_back(i);}print(a);//区间构造vector<int> b(a.begin(), a.end());print(b);//n个elem方式构造vector<int> c(10, 100);print(c);//拷贝构造vector<int> d(a);print(d);return 0;
}

 

赋值操作

#include<iostream>
#include<vector>
using namespace std;
void print(vector<int>& a) {for (int i = 0; i < a.size(); i++) {cout << a[i] << " ";}cout << endl;
}
int main() {vector<int> a;for (int i = 0; i < 10; i++) {a.push_back(i);}print(a);vector<int> b;b = a;print(b);//assignvector<int> c;c.assign(a.begin(), a.end());print(c);//n个elemvector<int> d;d.assign(10, 100);print(d);return 0;
}

 

vector容量和大小

#include<vector>
#include<iostream>
using namespace std;
void p(vector<int>& a) {for (int i = 0; i < a.size(); i++) {cout << a[i] << " ";}cout << endl;
}
int main() {vector<int> a;for (int i = 0; i < 10; i++) {a.push_back(i);}p(a);if (a.empty()) {cout << "空" << endl;}else {cout << "不空" << endl;cout << "容量为:" << a.capacity() << endl;cout << "大小为:" << a.size() << endl;}//重新指定大小a.resize(15,100);p(a);//长度过大默认用0填充,如果指定数字则用指定数字填充a.resize(5);p(a);//超出部分删除return 0;
}

 

vector存放内置数据类型

#include<iostream>
#include<algorithm>//算法头文件
#include<vector>//该容器的头文件
using namespace std;
//第三种遍历方式的函数
void print(int t) {cout << t << endl;
}
int main() {//创建容器vector<int> a;//插入数据a.push_back(10);a.push_back(20);a.push_back(30);//通过迭代器访问数据//起始迭代器,指向第一个元素vector<int>::iterator itBegin = a.begin();//结束迭代器,最后一个元素的下一个位置vector<int>::iterator itEnd = a.end();//遍历//第一种方式(复杂)while (itBegin != itEnd) {cout << *itBegin << endl;itBegin++;}//第二种方式for (vector<int> ::iterator it = a.begin(); it != a.end(); it++) {cout << *it << endl;}//第三种方式(STL遍历算法)for_each(a.begin(), a.end(),print);return 0;
}

vector存放自定义数据类型

#include<iostream>
#include<algorithm>
#include<vector>
#include<cstring>
using namespace std;
class person {
public:person(string name, int age) {this->m_Name = name;this->m_Age = age;}string m_Name;int m_Age;
};
int main() {vector<person> a;person p1("aaa", 10);person p2("bbb", 20);person p3("ccc", 30);//放入数据a.push_back(p1);a.push_back(p2);a.push_back(p3);//遍历for (vector<person> ::iterator it = a.begin(); it != a.end(); it++) {cout << "姓名:" << (*it).m_Name << " " << (*it).m_Age << endl;}return 0;
}

存放指针

#include<iostream>
#include<algorithm>
#include<vector>
#include<cstring>
using namespace std;
class person {
public:person(string name, int age) {this->m_Name = name;this->m_Age = age;}string m_Name;int m_Age;
};
int main() {vector<person*> a;person p1("aaa", 10);person p2("bbb", 20);person p3("ccc", 30);//放入数据a.push_back(&p1);a.push_back(&p2);a.push_back(&p3);//遍历for (vector<person *> ::iterator it = a.begin(); it != a.end(); it++) {cout << "姓名:" << (*it)->m_Name << " " << (*it)->m_Age << endl;}return 0;
}

vector容器嵌套容器

类似二维数组

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main() {vector<vector<int>> a;//创建小容器vector<int> a1;vector<int> a2;vector<int> a3;//向小容器中添加数据for (int i = 0; i < 3; i++) {a1.push_back(i + 1);a2.push_back(i + 2);a3.push_back(i + 3);}//小容器放入大容器a.push_back(a1);a.push_back(a2);a.push_back(a3);//通过大容器把所有数据遍历一遍for (vector<vector<int>> ::iterator it = a.begin(); it != a.end(); it++) {for (vector<int> ::iterator vit = (*it).begin(); vit != (*it).end(); vit++) {cout << (*vit) << " ";}cout << endl;}return 0;
}

string容器

string可以看成c++的字符串,string本质上是一个类

构造函数

#include<iostream>
#include<string>
using namespace std;
int main() {//默认构造string s1;//使用字符串s初始化const char* str = "hello world";string s2(str);cout << "s2=" << s2 << endl;//拷贝构造string s3(s2);cout << "s3=" << s3 << endl;//用n个字符初始化string s4(10, 'a');cout << "s4=" << s4 << endl;return 0;
}

赋值操作

#include<iostream>
#include<string>
using namespace std;
int main() {//char*类型字符串,赋值给当前的字符串string s1 = "hello";cout << "s1=" << s1 << endl;//把字符串s赋值给当前的字符串string s2 = s1;cout << "s2=" << s2 << endl;//字符赋值给当前的字符串string s3 = "a";cout << "s3=" << s3 << endl;//把字符串s赋值给当前的字符串string s4;s4.assign("c++");cout << "s4=" << s4 << endl;//把字符串s的前n个字符赋给当前字符串string s5;s5.assign("c++", 2);cout << "s5=" << s5 << endl;//把字符串s赋值给当前的字符串string s6;s6.assign(s5);cout << "s6=" << s6 << endl;//用n个字符c赋给当前字符串string s7;s7.assign(10, 'W');cout << "s7=" << s7 << endl;return 0;
}

 

字符串拼接

#include<iostream>
#include<string>
using namespace std;
int main() {string s1 = "我";s1 += "爱玩游戏";cout << "s1=" << s1 << endl;s1 += ':';cout << "s1=" << s1 << endl;string s2 = "LOL";s1 += s2;cout << "s1=" << s1 << endl;string s3 = "I ";s3.append("love ");cout << "s3=" << s3 << endl;s3.append("game abcde", 4);//前4个cout << "s3=" << s3 << endl;s3.append(s2);cout << "s3=" << s3 << endl;s3.append(s2, 0, 2);//截取s2中的字符,第0个开始,截取2个cout << "s3=" << s3 << endl;return 0;
}

 

查找和替换

#include<iostream>
#include<string>
using namespace std;
int main() {//查找string s1 = "abcdefgde";int pos = s1.find("de");cout << pos << endl;//d的位置pos = s1.rfind("de");cout << pos << endl;//find从左往右查,rfind从右往左查//替换string s2 = "abcdefg";s2.replace(1, 3, "11111111");//1~3位置全部替换为11111111cout << s2 << endl;return 0;
}

 

string字符串比较

#include<iostream>
#include<string>
using namespace std;
int main() {//比较方式:ASC||码//=返回0//>返回1//<返回-1string s1 = "xello";string s2 = "hello";if (s1.compare(s2) == 0) {cout << "s1=s2" << endl;}else if (s1.compare(s2) > 0) {cout << "s1>s2" << endl;}else {cout << "s1<s2" << endl;}return 0;
}

 

string字符存取

#include<iostream>
#include<string>
using namespace std;
int main() {string s1 = "hello";cout << s1 << endl;//通过[]访问单独字符for (int i = 0; i < s1.size(); i++) {cout << s1[i] << " ";}cout << endl;//通过at方式访问单个字符for (int i = 0; i < s1.size(); i++) {cout << s1.at(i) << " ";}cout << endl;//修改单个字符s1[0] = 'x';cout << s1 << endl;return 0;
}

 

string插入和删除

#include<iostream>
#include<string>
using namespace std;
int main() {string s = "hello";//插入s.insert(1, "111");cout << s << endl;//删除s.erase(1, 3);cout << s << endl;return 0;
}

string子串

#include<iostream>
#include<string>
using namespace std;
int main() {string s = "abcdef";string sub = s.substr(1, 3);cout << sub << endl;//实用操作string email = "zhangsan@sina.com";int pos=email.find("@");string userName = email.substr(0, pos);cout << userName << endl;return 0;
}

未完待续。。。。。。。。。。。。。。。

http://www.dtcms.com/wzjs/187009.html

相关文章:

  • asp动态网站开发 电子书百度seo排名优化系统
  • 网站建设公司沈阳优秀网站网页设计图片
  • 石家庄信息门户网站定制费用seo研究中心学员案例
  • 服装公司网站背景图成人培训机构
  • 潮汕学院网站开发全国互联网营销大赛官网
  • 网站制作公司怎么收费网络推广怎么样
  • 织梦做的网站打包在dw修改免费自动推广手机软件
  • 网站建设中故障分类和排除方法怎么做营销
  • 组合图片可以用在网站做链接吗推推蛙seo
  • 网站建设越来越难做发帖效果好的网站
  • 去哪个网站做试用好百度下载app安装
  • p2p网站制作价格如何做好网络营销管理
  • 怎么做网站弹窗怎样建立一个网站
  • 新公司网站建设都有哪些优势上海外贸seo公司
  • 镇江市建设工程安全监督站网站百度的总部在哪里
  • 知更鸟wordpress显示已收录seo网络培训班
  • 做网站做软件怎么赚钱优化大师客服
  • 大学生网站开发比赛郑州网络推广
  • 男人需要网站2021年中国关键词
  • 鸿兴网站建设公司商家怎么入驻百度
  • 做网站编辑需要具备的素质网站注册流程和费用
  • 沈阳三好街做网站公司世界足球排名前十名
  • 邯郸公司网站建设下载百度app最新版并安装
  • 广州购物网站建设价格山东百度推广代理
  • 杭州公司网站建设套餐东莞网站设计公司排名
  • 苏州品牌网站建设网络营销策划的内容
  • seo怎么才能做好seo工资一般多少
  • 网站建设的流程 步骤搜客
  • 网站 数据报表如何做百度客服24小时人工服务
  • 武汉做网站多少钱东莞互联网推广