c++
kouei_memo
这个作者很懒,什么都没留下…
展开
-
<c++> std::optional
#include <iostream>#include <optional>#include <vector>#include <algorithm>#include <set>#include <iterator>int main() { auto optVec = std::make_optional<std::vector<int>>(3, 22); //{22, 22, 22} std原创 2021-06-08 16:14:21 · 154 阅读 · 0 评论 -
<c++> 一道面试题 反转带符号整数为字符串
#include <iostream>#include <string>#include <algorithm>using namespace std;string To_string_rev(int x){ string x_rev = to_string(x); //cout << "1: " << x_rev << endl; if ('-' == x_rev[0]) { x_原创 2021-04-29 21:38:42 · 112 阅读 · 0 评论 -
<c++> 虚函数的一道面试题
代码:#include <stdio.h> using namespace std; class ITest {public: virtual void test() =0; };class A : public ITest {public: virtual void test() { printf("A. test\n"); } };class B : public A {public: virtual原创 2021-04-07 16:40:30 · 84 阅读 · 0 评论 -
<c++> STL set自定义比较函数
转载自:https://blog.csdn.net/yasi_xi/article/details/8701220注意:比较函数bool operator() (const CTest& lc, const CTest& rc)后不添加const时在gcc 4.8.5可以通过编译,在目前最新的gcc 11.0.1中不能通过编译,严谨起见,添加了const.代码:#include <set>#include <string>#include <i转载 2021-04-06 15:51:03 · 699 阅读 · 0 评论 -
<c++> 工厂方法模式讲解和代码示例
转载:https://refactoringguru.cn/design-patterns/factory-method/cpp/example#include <iostream>#include <string>/** * The Product interface declares the operations that all concrete products must * implement. */class Product { public: v转载 2021-04-04 18:36:47 · 160 阅读 · 0 评论 -
<c++> 静态对象的使用(单例模式)
注意:静态对象中可以包含非静态函数和非静态成员数据。代码:#include <iostream>using namespace std;class Singleton{public: static Singleton& getInstance(int var) { static Singleton instance(var); cout << "called." << endl; return instance; } int原创 2021-03-31 14:58:44 · 292 阅读 · 0 评论 -
<c++> variadic template Ex.2 实现printf
本文参考了:侯捷老师的c++讲义。#include <iostream>namespace my{void printf(const char* s){ while (*s) { if(*s == '%' && *(++s) != '%') { throw std::runtime_error("invalid format string: missing arguments."); std::cout原创 2021-03-28 17:19:06 · 151 阅读 · 0 评论 -
<c++> variadic template Ex.1
本文参考了:侯捷老师的c++讲义。#include <iostream>#include <bitset>using namespace std;void printX(){ /*nothing.*/};template <typename T, typename... Types>void printX(const T& firstArg, const Types&... args){ cout << fir原创 2021-03-28 13:56:51 · 82 阅读 · 0 评论 -
<c++> lambda的capture
本文参考了侯捷老师的关于《C++标准11-14》的讲义。capture的传值和传引用的区别#include <iostream>using namespace std;int main(){ int id = 0; auto f = [id] () mutable { cout << "id: " << id << endl; ++id; }; id = 42; f()原创 2021-03-28 12:28:47 · 946 阅读 · 0 评论 -
<c++> lambda表达式和函数对象
c++的lambda表达式和函数对象例子1函数对象lambda表达式普通函数例子2例子1函数对象#include <iostream>#include <vector>#include <algorithm>using namespace std;class LambdaFunctor {public: bool operator()(char b) { return b == ' '; }};int main()转载 2021-03-27 22:15:13 · 87 阅读 · 0 评论