2月25日面经--多乐游戏
1、C++多态(虚表是在编译链接时产生的)
2、C++内存管理机制
内存分区:栈区(主要存储函数的参数以及局部变量)、堆区、全局静态区、常量区(存储字符串常量、整形常量等)、代码区
内存泄漏-》智能指针
3、vector->erase用法,迭代器失效
4、给定一个数组,要求删除数组中奇数元素,不可借用辅助空间
#include<iostream>
#include<vector>
using namespace std;
//借助辅助元素#牛客AI配图神器#
vector<int> removeOddNumbers(vector<int>& nums)
{
int len = nums.size();
if (len == 0)
{
return {};
}
int j = 0;
for (int i = 0; i < len; ++i)
{
if (nums[i] % 2 == 0)
{
nums[j++] = nums[i];
}
}
nums.resize(j);
return nums;
}
//注意迭代器失效问题,错误写法
vector<int> removeOddNumbers1(vector<int>& nums)
{
int len = nums.size();
if (len == 0)
{
return {};
}
vector<int>::iterator it;
//iterator ptr = nullptr;
for (it = nums.begin(); it != nums.end(); ++it)
{
if (*it % 2 != 0)
{
//ptr = it;
nums.erase(it);
len--;
}
}
nums.resize(len);
return nums;
}
void Show(vector<int>& nums)
{
for (int num : nums)
{
cout << num << " ";
}
cout << endl;
}
int main()
{
vector<int> nums = { 1,2,3,4,5,6,7,8,9 };
vector<int> result = removeOddNumbers1(nums);
Show(result);
return 0;
}
2、C++内存管理机制
内存分区:栈区(主要存储函数的参数以及局部变量)、堆区、全局静态区、常量区(存储字符串常量、整形常量等)、代码区
内存泄漏-》智能指针
3、vector->erase用法,迭代器失效
4、给定一个数组,要求删除数组中奇数元素,不可借用辅助空间
#include<iostream>
#include<vector>
using namespace std;
//借助辅助元素#牛客AI配图神器#
vector<int> removeOddNumbers(vector<int>& nums)
{
int len = nums.size();
if (len == 0)
{
return {};
}
int j = 0;
for (int i = 0; i < len; ++i)
{
if (nums[i] % 2 == 0)
{
nums[j++] = nums[i];
}
}
nums.resize(j);
return nums;
}
//注意迭代器失效问题,错误写法
vector<int> removeOddNumbers1(vector<int>& nums)
{
int len = nums.size();
if (len == 0)
{
return {};
}
vector<int>::iterator it;
//iterator ptr = nullptr;
for (it = nums.begin(); it != nums.end(); ++it)
{
if (*it % 2 != 0)
{
//ptr = it;
nums.erase(it);
len--;
}
}
nums.resize(len);
return nums;
}
void Show(vector<int>& nums)
{
for (int num : nums)
{
cout << num << " ";
}
cout << endl;
}
int main()
{
vector<int> nums = { 1,2,3,4,5,6,7,8,9 };
vector<int> result = removeOddNumbers1(nums);
Show(result);
return 0;
}
全部评论
有后续吗大佬
相关推荐

点赞 评论 收藏
分享
02-26 00:01
第一拖拉机制造厂拖拉机学院 C++ 点赞 评论 收藏
分享