从C语言快速过渡到C++

一、vector容器

1、什么是vector容器

向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。

2、常用函数

1)、构造函数(初始化)
vector<int> a;      //创建一个空vector

vector<int> a(10);  //初始化了10个默认值为0的元素

vector<int> a(10, 1);   //初始化了10个值为1的元素

//通过复制a初始化
vector<int> a(5, 1);
vector<int> b(a);

int a[5] = {1, 2, 3, 4, 5};
//通过数组a的地址初始化,注意地址是从0到5(左闭右开区间)
vector<int> b(a, a+5);
2)、增加删除函数
vector<int> a;
//在末尾加入元素1
a.push_back(1);
//在下标1指向的元素前插入一个5
a.insert(1, 5);
//在下标1指向元素前插入3个5
a.insert(1, 3, 6);
//将b的所有元素插入到a中
int b[5] = {1, 2, 3, 4, 5};
a.insert(a.begin(), b, b+5);
//删除末尾元素
a.pop_back();

3、vector数组去掉重复元素

在写leetcode题目"三数之和"时需要对vector二维数组去重,这里主要用set数据结构

#include<set>
#include<vector>

//这里声明一个二维vector数组
vector<vector<int>> res;

//...中间操作省略

set<vector<int>> s(res.begin(), res.end());
res.assign(s.begin(), s.end());

具体更多的参考文档 菜鸟教程

二、string类

1、C语言风格的字符数组

C 风格的字符串起源于 C 语言,并在 C++ 中继续得到支持。字符串实际上是使用 null 字符 ‘\0’ 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。
C++ 中有大量的函数用来操作以 null 结尾的字符串,总结如下:

#include <iostream>
#include <cstring>
using namespace std;
 
int main ()
{
   char str1[11] = "Hello";
   char str2[11] = "World";
   char str3[11];
   int  len ;
   // 复制 str1 到 str3
   strcpy( str3, str1);
   cout << "strcpy( str3, str1) : " << str3 << endl;
   // 连接 str1 和 str2 结果在str1
   strcat( str1, str2);
   cout << "strcat( str1, str2): " << str1 << endl;
   // 连接后,str1 的总长度
   len = strlen(str1);
   cout << "strlen(str1) : " << len << endl;
   //比较str1,str2是否相等,相同则返回0;如果<返回值小于0,如果s1>s2返回值大于0。
   int res = strcmp(str1, str2);
   cout << "strcmp(str1, str2): " << res <<endl;
   //返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置
   char ch = 'e';
   int *a = strchr(s1, ch);
   //返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。
   int *b = strstr(s1, s2);
   return 0;
}

2、常用特殊函数

1)、string转int、long、float、double型
string s = "123.5";
//string 转 int;
cout << stoi(s) << endl;
//string 转 long
cout << stol(s) << endl;
//string 转 float
cout << stof(s) << endl;
//string 转 double
cout << stod(s) << endl;

具体更详细内容参考C语言中文网

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值