我的创作纪念日(随便唠唠)

机缘

我在CSDN上面发表文章只是一时兴起,想着可以当作记录学习知识的一个笔记使用,并且我写的内容通常是我学习一段时间之后,经过了一段时间的沉淀(这个时间通常是三个月到半年),觉得理解的够深刻之后才会去写出来的,也想着去起到一个复习的作用。


收获

与其谈一谈收获,我觉得不如说一说我期望学什么,从基础的C语言的语法到C++,到Qt编程,系统编程,网络编程,服务器开发,单片机开发......,我希望的是我深耕一个领域,更对Linux的内核非常感兴趣。就目前的情况来看,我距离这个目标还差的很远......


日常

分享一下我学习新知识的一个状态:

我的学习速度往往比同届的同学更慢,这种状况有时候会给我带来焦虑,但是更多的带来的是自信,同一个知识我通常要看5遍以上,以确保我对这个东西的实现有足够深度的理解......

彻彻底底掌握一个东西感觉让我着迷,当明白一个东西的底层实现方式之后会发现在很多其他的地方,有类似的设计,有更好的基础可以提高后面的学习速度,更能加快对新技术的适应能力,融汇贯通。


成就

我写过很多的代码,如果要问我最觉得有成就的,我可能答不上来,因为人外有人,天外有天,我从未觉得我写的代码有多好,我还很年轻,需要去见见更大的世界才能下定论。

这里就放一段我当时写的最抓狂的代码吧!

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include "sort_t.h"

using namespace std;

void output(int *arr, int n, const char *s = "arr");
template
void output(vector &arr);

void test1() {
    printf("\ntest array : \n");
    // sort array
    int *arr = getRandData(10);
    output(arr, 10);
    sort(arr, arr + 10); // [)
    output(arr, 10);
    sort(arr, arr + 10, greater());
    output(arr, 10);
    free(arr);
    return ;
}

void test2() {
    printf("\ntest vector : \n");
    // sort vector
    vector arr;
    for (int i = 0; i < 10; i++) arr.push_back(rand() % 10000);
    output(arr);
    sort(arr.begin(), arr.end());
    output(arr);
    sort(arr.begin(), arr.end(), greater());
    output(arr);
    return ;
}

struct Data {
    int x, y;
};

ostream &operator<<(ostream &out, const Data &d) {
    out << "(" << d.x << ", " << d.y << ")";
    return out;
}

bool cmp(const Data &a, const Data &b) {
    if (a.x != b.x) return a.x < b.x;
    return a.y > b.y;
}

void test3() {
    printf("\ntest my data structure : \n");
    vector arr;
    for (int i = 0; i < 10; i++) {
        Data d;
        d.x = rand() % 10, d.y = rand() % 10;
        arr.push_back(d);
    }
    output(arr);
    sort(arr.begin(), arr.end(), cmp);
    output(arr);
    return ;
}

void test4() {
    printf("\ntest sort ind : \n");
    int *arr = getRandData(10);
    int *ind = getRandData(10);
    for (int i = 0; i < 10; i++) ind[i] = i;
    output(arr, 10);
    sort(ind, ind + 10, [&](int i, int j) -> bool {
        return arr[i] < arr[j];
    });
    output(arr, 10);
    output(ind, 10, "ind");
    return ;
}

int main() {
    test1();
    test2();
    test3();
    test4();
    return 0;
}

template
void output(vector &arr) {
    printf("arr[%lu] = ", arr.size());
    for (int i = 0; i < arr.size(); i++) {
        cout << arr[i] << " ";
    }
    printf("\n");
    return ;
}

void output(int *arr, int n, const char *s) {
    printf("%s[%d] = ", s, n);
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
    return ;
}

憧憬

明年也需要更多的努力!争取大学四年之后能考研上岸有个出国的机会!!!

你可能感兴趣的:(开发语言,c语言,c++,算法)