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

医院网站怎么做优化排名靠前百度推广要自己建站吗

医院网站怎么做优化排名靠前,百度推广要自己建站吗,深圳做网站的人,贵阳网页设计培训摘要: CC STL(Standard Template Library,标准模板库)在C编程中的重要性不容忽视,STL提供了一系列容器、迭代器、算法和函数对象,这些组件极大地提高了C程序的开发效率和代码质量。 STL 容器 分为 2 大类 …

摘要:

   CC++ STL(Standard Template Library,标准模板库)在C++编程中的重要性不容忽视,STL提供了一系列容器、迭代器、算法和函数对象,这些组件极大地提高了C++程序的开发效率和代码质量。

STL 容器 分为 2 大类 , 分别是“序列式容器” 和“关联式容器 ”。

  • 序列式容器:每个元素都有固定位置,取决于插入时机和地点,其底层为线性序列的数据结构,里面存储的是元素本身。
  • 关联式容器:元素位置取决于特定的排序准则,和插入顺序无关,其里面存储的是< key , value >结构的键值对,在数据检索时比序列式容器效率更高。

   本系列博文将详细介绍C++STL的各种容器的特性优缺点,以及其常用算法方法等。本文介绍的是序列式容器-数组string,vector,array,bitset。

(开发环境:VScode,C++17)

关键词C++STL数据存储数据类型数组arraystringvectorbitset

声明:本文作者原创,转载请附上文章出处与本文链接。

文章目录

      • 摘要:
      • 正文:
        • string
          • 常用函数:
          • 使用例子:
        • array
          • 常用函数:
          • 使用例子:
        • vector
          • 常用函数:
          • 使用例子:
        • bitset
          • 常用函数:
          • 使用例子:
      • 推荐阅读

正文:

string

string类本不是STL的容器,但是它与STL容器有着很多相似的操作,因此,把string放在这里一起进行介绍。C++中的string类相当于是字符数组,但是其更方便于我们的操作,而且不需要在输入之前初始化字符数组的容量,节省空间。(有需要更深入了解数据结构数组的,可看同专栏下数据结构分支)

常用函数:
  • front():返回string第一个元素。
  • back():返回string最后一个元素。
  • insert():在指定位置索引插入字符。
  • erase():从指定索引处开始删除字符。
  • replace():从索引处开始替换字符。
  • append():在字符串尾部拼接上字符串。
  • size():返回string包含的元素个数。
  • compare():比较两个字符串,如果str小于str2,结果为负;相等则为0;大于则为正 。
  • find():从前往后找对应的字符串,若找到,返回首字母下标。
  • count():计算字符串中对应字符出现的次数。
  • substr():返回从索引处开始的对应个数元素组成的字符串 。
  • empty():判断字符串是否为空。
使用例子:
#include <iostream>  
#include <string>  int main()
{std::string str = "Hello, World!";// front 和 backstd::cout << "First character: " << str.front() << std::endl;std::cout << "Last character: " << str.back() << std::endl;// insertstr.insert(7, "Beautiful "); // 在索引7处插入"Beautiful "std::cout << "After insert: " << str << std::endl;// erasestr.erase(7, 9); // 从索引7开始删除9个字符(这里实际只有8个字符可删除)std::cout << "After erase: " << str << std::endl;  // replacestr.replace(7, 5, "Great"); // 从索引7开始替换5个字符为"Great"std::cout << "After replace: " << str << std::endl;// appendstr.append(" and everyone!");std::cout << "After append: " << str << std::endl;// sizestd::cout << "Size of string: " << str.size() << std::endl;// comparestd::string str2 = "Hello, everyone!";int result = str.compare(str2); // 比较两个字符串std::cout << "Compare result: " << result << std::endl; // findsize_t pos = str.find("Great");std::cout << "Position of 'Great': " << pos << std::endl;// countsize_t count = str.count('o'); // 计算字符'o'出现的次数std::cout << "Number of 'o's: " << count << std::endl;  // substrstd::string sub = str.substr(7, 5); // 从索引7开始获取长度为5的子字符串std::cout << "Substring: " << sub << std::endl;// emptyif (str.empty()) {std::cout << "String is empty." << std::endl;}else {std::cout << "String is not empty." << std::endl;}return 0;
}
array

C++ STL(Standard Template Library,标准模板库)中的array是一个固定大小的顺序容器,它支持随机访问。与vector不同,array的大小在编译时就必须确定,且之后不可改变。这意味着array提供了比vector更高的性能,因为它不需要在运行时动态分配内存或管理内存大小的变化。然而,这也意味着array的灵活性较低,不适用于需要动态改变大小的场景。

常用函数:
  • size():返回容器中的元素数量。
  • empty():如果容器为空,则返回true
  • begin(), end():返回指向容器第一个元素和最后一个元素之后位置的迭代器。
  • at(size_t pos):访问指定位置的元素,如果位置超出范围,则抛出std::out_of_range异常。
  • operator[]:可以使用下标操作符[]来访问array中的元素。
使用例子:
#include <iostream>
#include <array>int main()
{  std::array<int, 5> myArray = {1, 2, 3, 4, 5};// 遍历并打印数组for (int i = 0; i < myArray.size(); ++i) {std::cout << myArray[i] << " ";}std::cout << std::endl;// 使用at访问元素try {std::cout << "Element at position 3: " << myArray.at(3) << std::endl;}catch (const std::out_of_range& e) {std::cout << "Out of range error: " << e.what() << std::endl;}return 0;
}
vector

一句话来说,vector 就是能够动态调整大小的 array。和 array 一样,vector 使用连续内存空间来保存元素,这意味着其元素可以用普通指针的++和–操作来访问;不同于 array 的是,其存储空间可以自动调整。

常用函数:
  • size():返回容器中元素的数量。
  • empty():如果容器为空,则返回true
  • push_back(const T& value):在容器的末尾添加一个元素。
  • pop_back():移除容器末尾的元素。
  • begin(), end():返回指向容器第一个元素和最后一个元素之后位置的迭代器。
  • insert(iterator pos, const T& value):在指定位置插入一个元素,并返回指向新插入元素的迭代器。
  • erase(iterator pos):移除指定位置的元素,并返回指向被移除元素之后位置的迭代器。
  • clear():移除容器中的所有元素。
使用例子:
#include <iostream>
#include <vector>int main()
{std::vector<int> myVector = {1, 2, 3, 4, 5};// 在末尾添加元素myVector.push_back(6);// 遍历并打印vectorfor (int i = 0; i < myVector.size(); ++i) {std::cout << myVector[i] << " ";}std::cout << std::endl;// 在指定位置插入元素myVector.insert(myVector.begin() + 2, 99); // 在第三个位置插入99// 再次遍历并打印vectorfor (int num : myVector) { // 使用范围for循环std::cout << num << " ";}std::cout << std::endl;return 0;
}
bitset

C++ STL(Standard Template Library,标准模板库)中的bitset是一个固定大小的位序列,其中每个位可以独立地设置为0或1,bitset容器相当于是01数组。bitset是一个模板类,通常用于处理位操作,如设置、清除、翻转、测试位,以及执行位计数和位查找等操作。bitset特别适用于需要精确控制位操作的场景,如权限管理、状态标记等。

常用函数:
  • test(size_t pos):测试在位置pos上的位是否为1。
  • set(size_t pos, bool val = true):将位置pos上的位设置为val(默认为true)。
  • reset(size_t pos):将位置pos上的位设置为0。
  • flip(size_t pos):翻转位置pos上的位。
  • to_ulong()to_ullong():将bitset的内容转换为unsigned longunsigned long long类型(注意,这可能会导致数据丢失,如果bitset的大小超过了目标类型的位数)。
  • size():返回bitset中位的数量。
  • count():返回bitset中设置为1的位的数量。
  • any():如果bitset中至少有一个位被设置为1,则返回true
  • none():如果bitset中没有位被设置为1,则返回true
  • all():如果bitset中的所有位都被设置为1,则返回true
使用例子:
#include <iostream>
#include <bitset>int main()
{std::bitset<8> myBitset("10101010");// 测试并打印特定位std::cout << "Bit 3: " << myBitset.test(3) << std::endl; // 输出1,因为第3位是1(从0开始计数)// 翻转特定位myBitset.flip(3);std::cout << "After flipping bit 3: " << myBitset << std::endl; // 输出01101010// 设置特定位myBitset.set(5);std::cout << "After setting bit 5: " << myBitset << std::endl; // 输出01101110// 重置特定位myBitset.reset(5);std::cout << "After resetting bit 5: " << myBitset << std::endl; // 输出01101010// 输出1的个数std::cout << "Number of 1s: " << myBitset.count() << std::endl; // 输出4return 0;
}

推荐阅读

博客主页:https://blog.csdn.net/weixin_45068267
(客官逛一逛,有许多其它有趣的专栏博文)

C/C++专栏:https://blog.csdn.net/weixin_45068267/category_12268204.html
(内含其它STL容器使用及对应的数据结构实现)

http://www.ritt.cn/news/10835.html

相关文章:

  • 培训网站建设网站建设一条龙
  • 利用免费网站做SEO厦门网
  • 石家庄购物网站排名建站公司哪个好
  • wordpress怎么做图片预览seo信息查询
  • 网站开发的核心技术网站推广途径和推广要点有哪些?
  • 宁都网站建设预测2025年网络营销的发展
  • 自己服务器建设网站seo诊断工具有哪些
  • 公司网站建设北京手游推广平台代理
  • 摄影网站首页设计seox
  • 金华浦江网站建设网络营销策略概念
  • 我的网站要换新域名如何做友情链接平台
  • wordpress 网站积分打赏泰州网站建设优化
  • 安徽做网站的公司360投放广告怎么收费
  • 网站排名如何提升百度销售平台
  • 关于干外贸的一些好的学习网站网络广告发布
  • 天津市网站建设+网页制作郑州seo技术顾问
  • 长春网站制作都找源晟27全网品牌推广
  • 做网站一定需要服务器吗新网站秒收录技术
  • 重庆时时彩网站怎么做灰色推广引流联系方式
  • 北京市建设资格与执业资格注册中心网站关键词优化公司哪家效果好
  • 怎么做p2p的网站网站优化排名公司
  • 西安东郊做网站网站定制
  • 作文网站哪个平台好在百度上怎么卖自己的产品
  • 家用电脑如何做网站服务器网络推广需要花多少钱
  • 怎么做网页表白链接临沂seo公司稳健火星
  • 动漫制作技术是干什么的上海优化关键词的公司
  • 网站建设费需要分摊吗手机黄页怎么找
  • 个人网站备案怎么写优化设计三要素
  • 龙湾网站建设余姚网站制作公司
  • 青海做网站多少钱微博推广有用吗