百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

C++启蒙之旅--模板类为何物(c++模板引擎)

liebian365 2025-03-18 23:45 1 浏览 0 评论

上篇介绍的基本数据类型外,C++ 还定义了一个内容丰富的抽象数据类 型标准库。包括 string 和 vector,它们分别定义了字符串和矢量(集合)。string 和 vector 往往用迭代器iterator访问 string 中的字符,或者 vector 中的元素。

另一种标准库类型 bitset,她提供了一些方法的集合,我们可以利用这些方法来像C语言那样控制整数的二进制表示的一个个比特位,比如01110101,我们可以利用bitset里提供的操作符来做与或非运算。与整型值上的内置位操作符相比,bitset 类类型提供了一种更方便的处理位的方式,她就好像前者是为C设计的,而后者是专门为C++设计的。各人的孩子各人爱,我们既然使用C++,就用改多用bitset,不用、少用前者。

那啥,我们为什么在C++里要多用这些高级类型的数据呢?这是因为C语言定义的是低层数据类型,他们是机器相关的,比如在8位单片机上,int只有8位,32位处理器上,int用32位来表示。即据其具体机器表示来定义。

除了这些与C语言中定义相对应的类型外,C++ 标准库还定义了自己独有的高级的抽象数据类型。它使得我们在使用这些类型表示问题时不必明白数据到底如何表示的(到底是8位,32位),只需知道这些抽象数据类型支持哪些操作就可以了。

这其中,有两种重要的标准库类型是 string 和 vector。string 类型代表C++的字符串,vector代表数组,可用于保存一组指定类型的对象。

下面我举个例子:

使用 string 类型对象,必须包含相关头文件。如果提供了合适的关键字using 声明,那么编写出来的程序将会变得简短些:

#include

using std::string;

int main()

{

string girl1; //为空串

string girl2(girl1); // 将 girl2 初始化为 girl1 的一个副本

string girl3("value"); //将girl3 初始化为一个字符串的副本

string girl4(n, 'c'); //将 girl4 初始化为字符 'c' 的 n 个副本

cin >> girl1; // 读进来以空格分开的字符串进入girl1

cout << girl1 << endl; //输出 girl1

vector boy1; // boy1相当于int数组

vector boy2(boy1);//拷贝boy1的元素进入boy2

}

大家如果对编程感兴趣,想了解更多的编程知识,解决编程问题,了解怎么入门,我们这里有java高手,C++/C高手,windows/Linux高手,android/ios高手,请大家关注我的微信公众号:程序员互动联盟或者coder_online

相关推荐

几句代码实现搜索内存、解密数据库

本文只分享编程技术,不涉及具体软件。涉及具体软件的文章或工具出现很多年了,到处都是。头条上也有很多,这里我们不讨论。有用户问我:登录后才能解密,输入密码后才能备份出数据库,这些本来就是我自己可以查看的...

JDK 11 新特性总结(jdk最新特性)

一、语言特性增强局部变量类型推断升级支持在Lambda表达式参数中使用var关键字,编译器自动推断类型,简化代码编写并保持类型安全。...

和爷爷一起学Arduino:四位七段数码显示(学习面向对象编程)

2018年,我们买了个七段四位数码显示LED组件,如下图。经试验,它是与TM1637兼容的。右侧的引脚从上到下依次是,G(GND)、D(Data,数据)、C(Clock,时钟)、V(Vcc)。有两种,...

Linux 技巧:重定向 stderr 和 stdout 输出到 gdb 窗口

简介本文介绍了一个实用gdb调试技巧。它结合实际例子,一步一步示意如何重定向stderr和stdout到gdb窗口,使得查看应用程序的输出信息更为方便,从而提高调试者的工作效率。问题为...

CLion 1.0发布,C/C++跨平台集成开发环境

日前,知名开发者工具厂商JetBrains(捷克的一家软件开发公司)正式发布了一款跨平台的C/C++集成开发环境CLion1.0。这款强大的IDE旨在让你基于Linux、OSX、Windows系...

「运维经」第25章——gdb最实用的那几条命令

实用调试操作1setscheduler-lockingoff|on...

XV6操作系统入门系列-02-详解启动过程

第零步-心理上的准备工作任何事物都有其关键的窍门,当我们抓住了关键,事情会变得简单起来;当我们没有抓住要领,事情就会变得异常困难。...

GDB德国格德宝|OEM|奔驰车厂认证(德宝格机械)

MBMercedes油规格MB规范的名称源自奔驰蓝皮书计划,除以编号的段落和页面。经销商使用它来识别制造商认证的产品及其在发动机上的正确应用。...

o1已不是聊天模型了!SpaceX前工程师公开全新使用秘籍

梦晨发自凹非寺量子位|公众号QbitAI苹果&SpaceX前工程师分享o1使用心得,奥特曼、Brockman都转发了。...

ARM平台如何玩转GDB远程调试?(arm gdbserver)

前言关于GDB工具GDB工具是GNU项目调试器,基于命令行使用。和其他的调试器一样,可使用GDB工具单步运行程序、单步执行、跳入/跳出函数、设置断点、查看变量等等,它是UNIX/LINUX操作系统下...

ChatGPT击败50名人类医生!疾病诊断准确率达90%,OpenAI总裁:人机合作还得加强

...

GDB高级技巧:边Debug边修复BUG,无需修改代码,无需重新编译

友情提醒:本文介绍的调试技巧非常实用,但为了讲解清楚,篇幅较长,请耐心看完,我保证你定会有收获!引言程序调试时,你是否遇到过下面几种情况:1、经过定位,终于找到了程序中的一个BUG,满心欢喜地以为找到...

实现多态必须满足什么条件(实现多态的两种方式)

虚函数机制virtualmechanism先看代码:classA{public:virtualvoidprint(){cout<<"A.."<<endl;}...

gdb查看寄存器及内存数据与函数调用栈分析

在分析kdump生成的vmcore文件时,有时会需要分析函数调用栈及函数参数与局部变量的情况,这里以使用gdb为例调试分析一下函数调用的栈帧创建与销毁。操作系统:centos73.10.0-862...

C++语言求数组元素最大值及其下标例程(指针学习与运用)

C++语言编写求数组元素最大值及其下标例程(指针学习与运用)文章logo#include"stdafx.h"...

取消回复欢迎 发表评论: