C++常见面试题之一(STL相关)

  1. C++ STL中的容器和算法

Vector,list,map,stack,queue这些需要明白,算法包含alogrithm

常见的算法包括:

For_each()

Find()

Find_if()

Count()

Count_if()

Replace()

Releace_if()

Copy()

Unique_copy()

Sort()

Equal)range()

Merge()

List<T> 一个双向链表容器,完成了标准C++数据结构链表的所有功能。

Queue<T> 一种队列容器,完成了标准C++数据结构队列的所有功能。

Stack<T>,一种栈容器,完成了C++标准数据结构栈的所有功能

Deque<T>,双端队列容器,完成了标准C++数据结构中栈的所有功能。

Priority_queue<T>,一种按照值排序的队列容器

Set<T>,一种集合容器

Multiset<T>,一种允许出现重复元素的集合容器

Map<key,value>一种关联数组容器

Multimap<key,value>,一种允许出现重复key值得关联数组容器。

Vector的用法:

Vector的初始化可以有五种方式:

Vector<int> a(10);没给初始值,大小是10

Vector<int> a(10,1);大小是10,初始值是1

Vector<int> a(b.begin(),b.begin()+3);//将b的0 1 2元素给a

Vector<int> a(b);

Int b[7] = {1,2,3,4,5,9,8};

Vector<int> a(b,b+7);//从数组中获得初始值

Map的用法:

Map<int,int>删除key值为偶数的元素

#include<iostream>

#include<map>

using namespace std;

void eraseKey(map<int, int>& nums)

{

for (map<int, int>::iterator it = nums.begin(); it != nums.end();)

{

if (it->first % 2 == 0)

{

nums.erase(it++);

}

else{

it++;

}

}

}

void showMap(map<int,int> nums)

{

for (map<int, int>::iterator it = nums.begin(); it != nums.end(); it++)

{

cout << it->first << "    " << endl;

}

}

void main()

{

map<int, int> nums;

for (int i = 0; i < 100;i++)

nums[i]=2;

showMap(nums);

eraseKey(nums);

showMap(nums);

}

Stack例子:

Include<stack>

void main()

{

stack<int> st;

for (int i = 0; i < 100; i++)

{

st.push(i);

}

cout << "开始弹出堆栈的元素" << endl;

while (!st.empty())

{

cout << st.top() << endl;

st.pop();

}

}

  1. C++空类中有哪些默认的函数?
  1. 构造函数
  2. 拷贝构造函数
  3. 析构函数
  4. 赋值运算符重载函数
  5. 取地址操作符重载函数
  6. Const修饰的取地址操作符重载函数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程经验随笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值