云飞兄是你先拔的剑,就别怪我也亮剑了
李云龙
害,最近刷短视频都是亮剑,好好看,下面也放一首主题曲,感受一下“中国军魂”~
越来越读不下去传统的一些编程书了,我个人反思了一下,我觉得不是书的毛病,是我的毛病,这些书的出发点都是初学者或是稍微有点基础的读者,经常是对一个概念解释很多次,翻来覆去的说,而且给的demo看起来也比较呆瓜。其实实用性还是差很多的,看代码里面都是使用的一些新标准新特性,但是这些书都是有点老了,也不讲。
这里可能要插一个东西叫,元编程:
只有这本是讲这个的
我需要的只是一个精简的高质量demo和言简意赅的概念解释而已,幸好我今天找到了这样的文档,那就是微软的C++:
已经很久没有可以连续看一个技术文档这么久了,这种点到为止的感觉真的很好。
里面还有一个日语写的程序段,感觉有点莫名其妙的可可爱爱
而且C++研究的越多越觉得,范型编程或者说通用编程才是C++这个语言的灵魂,在2022年还拿C++和C比的人,我只能说你格局太low了,朋友~
别杠,杠就叉出去
vector<int> vi; // vi是装载int类型的vector容器的实例
vector<string> vs; // vs是装载string类型的vector容器的实例
vector<double> vd; // vd是装载double类型的vector容器的实例
我这里是想说明一种读源码的顺序,<>里面是具体的类型,最前面是容器,最后面的是建议的一个实例。
模板是 C++ 中的泛型编程的基础。作为强类型语言,C++ 要求所有变量都具有特定类型,由程序员显式声明或编译器推导。但是,许多数据结构和算法无论在哪种类型上操作,看起来都是相同的。使用模板可以定义类或函数的操作,并让用户指定这些操作应处理的具体类型。
模板的书这个感觉还行
你看这个模版的定义,就说的很明白,模版就是定义了一种操作,淡化了具体类型的工作,其实是将这个工作放到了别的流程上面。
template <typename T>
T minimum(const T& lhs, const T& rhs)
{
return lhs < rhs ? lhs : rhs;
}
上面的代码描述了一个具有单个类型参数 T 的泛型函数的模板,其返回值和调用参数(lhs 和 rhs)都具有此类型。
可以随意命名类型参数,但按照约定,最常使用单个大写字母。T 是模板参数;关键字 typename 表示此参数是类型的占位符。调用函数时,编译器会将每个 T 实例替换为由用户指定或编译器推导的具体类型参数。编译器从模板生成类或函数的过程称为“模板实例化”;minimum
template<typename T>
class T_vector {
public:
typedef T value_type;
// 构造函数
T_vector() =default;
T_vectot(std::initializer_list
il); // 容器的元素数目
size_type size() const { return data->size(); }
bool empty() const { return data->empty(); }
// 添加元素
void push_back(const T& val) {
data->push_back(val);
}
void push_back(T &&val) {
data->push_back(std::move(val));
}
private:
std::shared_ptr<std::vector
> data; // 若data[i]无效,则抛出msg
void check(size_type i,const std::string &msg) const;
}
被窝写文章就是不一样,写完直接合住电脑说晚安,晚安!
作者:匿名用户链接:https://www.zhihu.com/question/31064902/answer/951581334来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
————————————————
版权声明:本文为CSDN博主「wzh_scuec」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_51958878/article/details/123852228