【C++基础】CSP-J刚入门阶段C++基础书籍,如何选择呢?

文摘   2024-11-17 07:36   北京  

大家好!我是老码农。

今天新开一个合集:C++基础,本合集会给大家分享有关【C++基础】知识。

这个合集后续也会写很多关于C++基础的文章,欢迎订阅。

孩子们如果开始学习信息学,一般都会买本C++基础的书。

那市面上有没有特别好的C++基础的书呢?

太难了

写这篇文章之前我特意去京东搜索C++基础的书籍,

很遗憾,没有找到一本令我特别满意的书。

选择书籍要点

  • 第1点:最好选择针对信息学的C++书籍;
  • 第2点:如果已经购买了有关C++基础书籍,也没必要再买一本针对信息学的C++基础的书籍;

发泄不满

市面上针对信息学的C++书籍千篇一律,基本包含这几个模块

  • C++基础
  • 顺序结构
  • 分支结构
  • 循环结构
  • 数组
  • 指针
  • 结构体

请问:STL这块不需要再讲讲吗?

猜一猜

分享一段代码,请问有谁知道这是谁写的代码吗?

#include <bits/stdc++.h>

using i64 = long long;
using u64 = unsigned long long;
using u32 = unsigned;

int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);

bool r[8] {}, c[8] {};
for (int i = 0; i < 8; i++) {
std::string S;
std::cin >> S;

for (int j = 0; j < 8; j++) {
if (S[j] == '#') {
r[i] = true;
c[j] = true;
}
}
}

int ans = std::count(r, r + 8, false) * std::count(c, c + 8, false);
std::cout << ans << "\n";

return 0;
}

再分享一段代码,请问有谁知道这段是谁写的吗?

#include <bits/stdc++.h>

using namespace std;

#ifdef LOCAL
#include "algo/debug.h"
#else
#define debug(...) 42
#endif

int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<int> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
map<int, int> mp;
for (int i = 0; i < n; i++) {
auto it = mp.find(a[i]);
int b = (it == mp.end() ? -1 : it->second + 1);
cout << b << " \n"[i == n - 1];
mp[a[i]] = i;
}
return 0;
}

这两段代码出自全球顶级大佬之手,里面均用到STL的知识。

赶紧猜一猜:能猜出来的群友可留言,看有多少人能猜对?

和信息学配对比较理想的C++基础书籍在哪里?

其实我是想写一本有关信息学的C++基础的书籍,无奈平时工作比较忙。

断断续续整理了一些,离成品还有段距离。

路漫漫其修远兮。。。我会努力的

回到正题

回到:选择书籍提到的第2点:

  • 选第2点:如果已经购买了有关C++基础书籍,也没必要再买一本针对信息学的C++书籍;

很明确的说了,如果已经买了C++入门的基础书籍,没必要再买一本,买一本也要好几十块钱呢。

不该浪费一分钱,坚决“省”字诀到底。我就抠,咋得了。

如果买的不是针对信息学的C++入门书籍,咋办?

一定要注意,如果您之前给孩子买的书籍不是针对信息学的,不要把整本书都学了。

只需要先关注:

  • C++基础
  • 顺序结构
  • 分支结构
  • 循环结构
  • 数组
  • 指针
  • 结构体

如果书中有提到STL,例如:vector、map、set、queue这些也学一下即可,后面用到啥在学啥

划重点: 千万不要都学,有些知识点信息学算法比赛是用不上的。

买哪本呢?

我昨天在京东上也搜索了下,看这本还不错,推荐给大家。

书名:《信息学奥赛导学(C++语言基础入门)》

这本书推荐理由:

  • 第1:例题,基于算法题讲解知识点;

  • 第2:代码比较工整;

  • 第3:看目录书中有些关于比赛技巧内容;

纸质书购买链接如下:



注意点:因为我看网上有些文章一推荐就是一堆书,要是全都买下来,至少500元起步。

太没必要了,书买的不是越多越好,既浪费钱,又特别占地方。

交流

大家有任何有关信息学或者孩子学习的问题,可以添加:老码农的微信号。

咱们在微信中单聊,因为平时工作比较忙,不能保证及时回复大家,望大家见谅。

写在最后

昨天我对【小码匠和老码农】公众号未来规划进行了梳理,

后面会更成体系梳理有关数竞、信竞方面的知识,我本身也是孩子家长,孩子一路信息学学过来,踩了不少坑。

也希望刚进入信息学的家长能少踩坑,让孩子们学习更有效率。



小码匠和老码农
我是小码匠,一名初二的女生,本来可以享受那么多的休息时光,却偏偏要奉献给一方键盘和数学公式。 未来无论风雨挫折,作为一个OIer,源于喜欢,无怨无悔。 在这里我会不定期分享一些数学和信息学题目,期待与你共同进步。
 最新文章