猿创征文|——C++|vecotor

发布于:2022-12-20 ⋅ 阅读:(239) ⋅ 点赞:(0)

目录

vector介绍

成员函数

 find|insert

sort 

习题 只出现一次的数字 

 习题 杨辉三角


vector介绍

vector原型为俩个模板参数,allocator是空间配置器(内存池) 

成员函数

构造函数

 析构函数

 

 运算符=

(constructor)构造函数声明 接口说明
vector()(重点) 无参构造
vector(size_type n, const value_type& val = value_type()) 构造并初始化n个val
vector (const vector& x); (重点) 拷贝构造
vector (InputIterator first, InputIterator last); 使用迭代器进行初始化构造

 

 遍历vecotr方式:1.下标+[],返回reference

 

 

 

 

 ​

 find|insert

​ 

 find是一个函数模板,传迭代器区间即可,左闭右开

 insert

 

删除某个位置或迭代器区间 

sort 

 

 底层通过快排实现,对迭代器区间默认排升序

注意要包含这个头文件

 

这样会降序,less和greater在后面的博客里讲解 

对string也可使用 

	vector<int>v1;
	v1.push_back(54);
	v1.push_back(24);
	v1.push_back(58);
	v1.push_back(12);
	v1.push_back(69);
	v1.push_back(36);
	v1.push_back(29);
	v1.push_back(25);
	v1.push_back(100);
	sort(v1.begin(), v1.end());
	for (auto ch : v1)
	{
		cout << ch << " ";
	}
	cout << endl;
	less<int> ls;
	greater<int>gt;
	sort(v1.begin(), v1.end(),gt);
	for (auto ch : v1)
	{
		cout << ch << " ";
	}
	cout << endl;
	string s("hello31313131244");
	sort(s.begin(), s.end());
	for (auto ch : s)
	{
		cout << ch << " ";
	}
	cout << endl;
	sort(s.begin(), s.end(),greater<char>());
	for (auto ch : s)
	{
		cout << ch << " ";
	}
	cout << endl;

vector<char>无法替代string

string数据结尾有\0,可+=,find,比较大小,to_string,<<,>>等功能

vector的push back是引用传参

 如果T是string,传值传参会很麻烦,涉及到深拷贝

习题 只出现一次的数字 

class Solution {
public:
    int singleNumber(vector<int>& nums) {
int val=0;
for(auto ch:nums)
{
    val^=ch;
}
return val;
    }
};

136. 只出现一次的数字 - 力扣(LeetCode)

 

 习题 杨辉三角

118. 杨辉三角 - 力扣(LeetCode)

 对vector<vector<int>>解释

class Solution {
public:
    vector<vector<int>> generate(int numRows) {
 vector<vector<int>> vv;
 vv.resize(numRows);
 for(int i=0;i<vv.size();++i)
 {
     vv[i].resize(i+1,0);
     vv[i].front()=vv[i].back()=1;
 }
 for(size_t i=0;i<vv.size();++i)
 {
     for(size_t j=0;j<vv[i].size();++j)
     {
         if(vv[i][j]==0)
         {
             vv[i][j]=vv[i-1][j]+vv[i-1][j-1];
         }
     }
 }
 return vv;
    }
};

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到