C++ の記述テストでよく使用される関数

配列

#include <ベクター>

Push_back: ベクトルの末尾に要素を追加します。

Pop_back: ベクターの最後の要素を削除します。

empty: ベクトルが空かどうかを判断します。空の場合、ベクトルには要素がありません。

size : 出力キュー内のデータ要素の数

ベクトルの初期化関連:

ベクトル<int> テスト(n, 0)

ベクトル<int> テスト(5, 2);

ベクトル二次元配列の初期化方法:

ベクトル<ベクトル<ブール>> test(m, ベクトル<ブール>(n, false))

ベクトル<ベクトル<int>テスト(m, ベクトル<int>(n, 0))

トラバーサル用のベクトル反復子:

nums.begin()

nums.end()

数値.rbegin()


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


#include <キュー>

プッシュ: キューの最後に要素を挿入します。

Pop : 最上位のデータを削除します

size : 出力キュー内のデータ要素の数

empty : キューが空かどうかを判断します。

フロント : キュー内の最初の要素を返しますが、削除はしません

back : キュー内の最後の要素を削除せずに返します。


デク

#include <deque>

Pop_back(): キューの最後にある要素を削除します。戻り値はありません。

Pop_front(): キューの先頭の要素を削除します。戻り値はありません。

emplace_back(): キューの最後に要素を追加します。

emplace_front(): キューの先頭に要素を追加します。

フロント : キュー内の最初の要素を返しますが、削除しません。

back : キュー内の最後の要素を削除せずに返します。

size(): キューのサイズを取得します。

empty() : キューが空かどうかを判断します。


スタック

#include <スタック>

s.push(); //スタックにプッシュする

s.pop(); //スタックをポップアウトし、スタックの最上位要素を削除するだけで、要素は返さない

s.top(); //スタックの最上位要素にアクセス

s.empty(); //スタックが空であると判断し、空の場合はtrueを返す

s.size(); //スタック内の要素の数にアクセスします


ハッシュ表

ハッシュ テーブルには、ハッシュ セットとハッシュ マップという2 つの異なるタイプがあります。

ハッシュ セットは、セットデータ構造の実装の 1 つであり、一意の値を格納するために使用されます。
ハッシュ マップは、(キー、値) キーと値のペアを格納するためのマップデータ構造の実装の 1 つです

ハッシュ マップ: #include <unowned_map>

unowned_map は、<key, value> のキーと値のペアを格納する連想コンテナーであり、その要素の配置順序は順序付けされていません。

find(key): 値が key である要素を検索し、見つかった場合はその要素を指す前方反復子を返し、それ以外の場合はコンテナ内の最後の要素の後の位置を指す反復子を返します。

count(key): コンテナ内で値が key である要素の数を見つけます。

Erase(): 指定された要素を削除します。

ハッシュセット: #include <unowned_set>

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 <cmath>

#include <iostream>
#include <cmath>

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<cstdio>
#include<algorithm> 
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 <iostream>
#include <vector>
#include <algorithm>

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

    std::vector<int>::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;
}


文字列文字列

#include <文字列>

文字列のさまざまな構築方法:

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(): 部分文字列を返します。

size(): 文字数を変更します。

#include <アルゴリズム>

reverse: [first, last); の範囲で順序を逆にします。

sort(): データのソートを実現します。3 番目のパラメータ comp はソート方法であり、デフォルトのソート方法は小さいものから大きいものへのソートです。

#include<iostream>
#include<algorithm>
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<<a[i]<<" ";
}
//自定义函数
bool cmp(int a,int b){
  return a>b;
}


数学関連

算術差分および等比数列の一般用語および公式

算術一般用語:

算術合計の公式:

比率の一般項の公式は次のとおりです。

比例和の式は次のようになります。


INT_MIN、INT_MAX、LONG_MIIN、LONG_MIN

#include <limits.h>

おすすめ

転載: blog.csdn.net/qq_41709234/article/details/131745554