09 2023 档案

摘要:xsimd简介 xsimd是C++的一个开源simd库,实现了对常见simd指令的封装,从而使得simd的操作更为简单。接下来先从两个简单的例子来入门xsimd。 void average(const std::vector<double>& v1, const std::vector<double 阅读全文
posted @ 2023-09-28 16:06 ChebyshevTST 阅读(450) 评论(0) 推荐(1) 编辑
摘要:设计一个不能被using的对象 在实际开发中为了避免命名空间污染,一般都不会using namespace std。但是如果一个对象写起来比较复杂,用using能大幅度地简化操作。现在假设我们要设计一个函数,它在一个作用域里面,使用它只能以A::B::C()这种形式。思考一下,如果我们放在命名空间下 阅读全文
posted @ 2023-09-26 20:01 ChebyshevTST 阅读(195) 评论(0) 推荐(0) 编辑
摘要:假如我有一个需求,就是如果传入的参数是int类型,我就输出int类型,否则就输出T。很显然,根据模板的基础知识,我们可以这么写 template <class T> void f(T) { std::cout << "T\n"; } template <> void f(int) { std::co 阅读全文
posted @ 2023-09-21 10:40 ChebyshevTST 阅读(56) 评论(0) 推荐(0) 编辑
摘要:注释掉的为传统的写法,从C++20起支持default关键字修饰的写法,即使是成员变量有多个的时候也支持,减轻了程序员的心智负担。 阅读全文
posted @ 2023-09-16 16:38 ChebyshevTST 阅读(24) 评论(0) 推荐(0) 编辑
摘要:std::variant介绍:en.cppreference.com/w/cpp/utility/variant 通过泛型模板(仅提供了int, double, string三种类型的存储),实现了append, pop, front, back, size等方法,并且通过重载运算符实现了对负数索引 阅读全文
posted @ 2023-09-08 21:12 ChebyshevTST 阅读(35) 评论(0) 推荐(0) 编辑
摘要:#include <iostream> #include <vector> #include <numeric> #include <sstream> int main() { std::vector v{1, 2, 3, 4, 5}; std::copy(begin(v), end(v), std 阅读全文
posted @ 2023-09-05 10:50 ChebyshevTST 阅读(22) 评论(0) 推荐(0) 编辑
摘要:以下代码为修改vector内部的每一个元素,使其每个元素大小变为原来的平方。 std::vector v1{1, 2, 4, 2}; std::for_each(begin(v1), end(v1), [](auto& n) { return n * n; }); for (const auto& 阅读全文
posted @ 2023-09-03 10:53 ChebyshevTST 阅读(32) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示