#include "../inc/func_.h"#include <iostream>#include <string>using namespace std;size_t count_calls(){//调用结束后,这个值仍然有效static size_t ctr = 0;return ++ctr;}void nochange(int a){a--;cout << a << endl;}void change(int *p){(*p)--;cout << *p << endl;}void change(int &ra){ra--;cout << ra << endl;}bool isShorter(const string &s1, const string &s2){return s1.size() < s2.size();}const string &shorterString(const string &s1, const string &s2){return s1.size() <= s2.size() ? s1 : s2;}string &shorterString(string &s1, string &s2){auto &r = shorterString(const_cast<const string &>(s1), const_cast<const string &>(s2));return const_cast<string &>(r);}string ::size_type find_char(const string &s, char c, string::size_type &occurs){//第一次出现的位置(如果有的话)auto ret = s.size();//设置表示出现次数的形参的值occurs = 0;for (decltype(ret) i = 0; i != s.size(); ++i){if (s[i] == c){if (ret == s.size())//记录c第一次出现的位置ret = i;//出现的次数+1++occurs;}}return ret;}// const int ia[]等价于const int * ia// size表示数组的大小,将它显示地传给函数用于控制对ia元素的访问void print_array(const int ia[], size_t size){for (size_t i = 0; i != size; ++i){cout << ia[i] << endl;}}// arr是数组的引用,维度是类型的一部分void print_arrayref(int (&arr)[10]){for (auto elem : arr){cout << elem << endl;}}void error_msg(initializer_list<string> il){for (auto beg = il.begin(); beg != il.end(); beg++){cout << *beg << " ";}cout << endl;}char &get_val(string &str, string::size_type ix){return str[ix];}void func_declare(){// arrT是一个类型别名,他表示的类型含有10个整数数组typedef int arrT[10];// arrT的等价声明using arrT2 = int[10];// func返回一个指向含有10个整数的数组的指针arrT *func1(int);int(*func2(int i))[10];// func接受一个int类型的实参,返回值为一个指针//该指针指向含有10个整数的数组auto func(int i)->int(*)[10];}int odd[] = {1, 3, 5, 7, 9};int even[] = {0, 2, 4, 6, 8};//返回一个指针,该指针指向含有5个整数的数组decltype(odd) *arrPtr(int i){return (i % 2) ? &odd : &even;}void print(const char *cp);void print(const int *beg, const int *end);void print(const int ia[], size_t size);typedef string::size_type sz;void screen(sz ht = 24, sz wh = 80, char back = ' '){}constexpr int new_sz() { return 42; }constexpr int foo = new_sz();constexpr size_t scale(size_t cnt) { return new_sz() * cnt; }// pf指向一个函数,该函数的参数是两个const string 的引用,返回bool类型bool (*pf)(const string &, const string &);//声明一个名为pf2的函数返回值类型为bool*bool *pf2(const string &, const string &);// F是函数类型,不是指针using F = int(int *, int);// PF是指针类型using PF = int (*)(int *, int);F *f1(int);PF *f2(int);int (*f3(int))(int *, int);auto f4(int) -> int (*)(int *, int);string::size_type sumLength(const string &, const string &);//根据形参取值,getFcn函数返回值为指向sumLength的指针decltype(sumLength) *getFcn(const string &);
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。