C++笔试常用函数整理

数组

#include

push_back:向量尾部增加一个元素

pop_back:删除向量中最后一个元素

empty:判断向量是否为空,若为空,则向量中无元素

size : 输出队列中数据元素的个数

vector初始化相关:

vector test(n, 0)

vector test(5, 2);

vector二维数组的初始化方式:

vector> test(m, vector(n, false))

vector> test(m, vector(n, 0))

vector迭代器for遍历:

nums.begin()

nums.end()

nums.rbegin()


for (vector::iterator iter = test.begin(); iter != test.end(); iter++)
{
    cout << *iter << endl;
}


队列

#include

push :在队列尾部插入元素

pop : 移除最顶端的数据

size : 输出队列中数据元素的个数

empty : 判断队列是否为空

front :返回队列中第一个元素,但是并不删除

back :返回队列中最后一个元素,并且不删除


双端队列

#include

pop_back():删除队列尾部的元素,无返回值;

pop_front():删除队列头部的元素,无返回值;

emplace_back():在队列尾部添加一个元素;

emplace_front():在队列头部添加一个元素;

front :返回队列中第一个元素,但是并不删除;

back :返回队列中最后一个元素,并且不删除;

size():获得队列大小;

empty() :判断队列是否为空。


#include

s.push(); //入栈

s.pop(); //出栈,只是删除栈顶元素,并不返回该元素

s.top(); //访问栈顶元素

s.empty(); //判断栈空,当栈空时,返回true

s.size(); //访问栈中元素个数


哈希表

有两种不同类型的哈希表:哈希集合和哈希映射

哈希集合是集合数据结构的实现之一,用于存储非重复值
哈希映射是映射数据结构的实现之一,用于存储(key, value)键值对

哈希映射:#include

unordered_map是存储键值对的关联式容器,其元素的排列顺序是无序的。

find(key):查找以值为 key 的元素,如果找到,则返回一个指向该元素的正向迭代器;反之,则返回一个指向容器中最后一个元素之后位置的迭代器;

count(key):在容器中查找值为 key 的元素的个数;

erase():删除指定元素;

哈希集合:#include

find(key):查找以值为 key 的元素,如果找到,则返回一个指向该元素的正向迭代器;反之,则返回一个指向容器中最后一个元素之后位置的迭代器;

count(key):在容器中查找值为 key 的元素的个数,0或1

insert():向容器中添加新元素;

erase():删除指定元素;

empty():若容器为空,则返回 true;否则 false


最值函数

#include

max:比较得到最大元素。

min:比较得到最小元素。

min_stack.push( ::min(x, min_stack.top()) ); // ::min表示全局的min函数,将要压栈值和最小栈栈顶元素比较得到最小元素。

#include

#include 
#include 

using namespace std;

int main()
{
    long int x = -101;
    double result;

    result = abs(x);
    cout << "abs(" << x << ") = |" << x << "| = " << result << endl;

    return 0;
}


二分查找

#include

lower_ bound(first,last,val)用来寻找在数组或容器的[first,last)范围内第一个值大于等于val的元素的位置,如果是数组,则返回该位置的指针;如果是容器,则返回该位置的迭代器。

upper_bound(first,last,val)用来寻找在数组或容器的[first,last)范围内第一个值大于val的元素的位置,如果是数组,则返回该位置的指针;如果是容器,则返回该位置的送代器。

#include
#include 
using namespace std;
int main(){
	int a[10] = {1,2,2,3,3,3,5,5,5,5};
	//寻找-1
	int* lowerPos = lower_bound(a,a+10,-1);
	int* upperPos = upper_bound(a,a+10,-1);
	printf("%d,%d\n",lowerPos-a,upperPos-a);

	return 0;
	
}
#include 
#include 
#include 

int main() {
    std::vector v = {1, 3, 5, 7, 9};
    int val = 6; // 要查找的值

    std::vector::iterator it = std::lower_bound(v.begin(), v.end(), val);

    if (it != v.end()) {
        std::cout << "第一个大于等于 " << val << " 的元素位置为:" << std::distance(v.begin(), it) << '\n';
    }
    else {
        std::cout << "在容器中未找到大于等于 " << val << " 的元素\n";
    }

    return 0;
}


字符串string

#include

string的多种构造方式:

string str1;                 //生成空字符串
string str2("123456789");    //生成"1234456789"的复制品
string str3("12345", 0, 3);  //结果为"123"
string str4("012345", 5);    //结果为"01234"
string str5(5, '1');         //结果为"11111"
string str6(str2, 2);        //结果为"3456789"

int length(); int size(); //求长度

to_string():将括号内的数字转化为字符串;

push_back():添加字符,而不是emplace_back!emplace_back()只适用于容器中存储的类型是对象,而不是基本类型;

pop_back():尾部删除字符;

substr():返回子字符串;

resize():改变字符数量。

#include

reverse:反转在[first,last)范围内的顺序;

sort():实现对数据的排序,第三个参数comp是排序的方法,默认的排序方法是从小到大排序。

#include
#include
using namespace std;
bool cmp(int a,int b);
main(){
  //sort函数第三个参数自己定义,实现从大到小
  int a[]={45,12,34,77,90,11,2,4,5,55};
  sort(a,a+10,cmp);
  for(int i=0;i<10;i++)
    cout<b;
}


数学相关

等差、等比数列通项和公式

等差通项:

等差求和公式:

等比通项公式:

等比求和公式:


INT_MIN、INT_MAX、LONG_MIIN、LONG_MIN

#include

你可能感兴趣的:(数据结构,c++,开发语言)