V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  owwlo  ›  全部回复第 4 页 / 共 8 页
回复总数  157
1  2  3  4  5  6  7  8  
2020-05-22 23:51:22 +08:00
回复了 meisen 创建的主题 晒晒更健康 2020 晒键盘
* 品牌:Logitec
* 型号:K270
* 轴体:啥个是轴???
* 特色:完美适配 macOS/Windows/Ubuntu/小米盒子 /PS4 等一众设备,打折时候买的加上鼠标只要$9.9!!!!(这是贫穷的我最喜欢的特点)
* 缺点:……$9.9 送电池还包邮!从学生陪我到工作,所以也没啥好抱怨的

https://i.imgur.com/3LoF7nw.jpg
https://i.imgur.com/D8oS9JN.jpg
https://i.imgur.com/ukiwQdt.jpg
https://i.imgur.com/krktZJS.jpg
求拉😭b3d3bG9fd3g=
2020-05-17 01:49:25 +08:00
回复了 kaiki 创建的主题 问与答 现代社会如何减少被剥削的机会。
自己变成老板
抱歉,写上条时没注意楼主已经在英国 2+2 的情况。楼主真的不打算在英国或者欧洲留下两年看看再决定么?
不管怎么选,这会是一个很大的选择,完全影响你的一生。

七八年前我跟楼主的选项有些类似,不一样的是:1. 我的 offer 没有你的这么好; 2. 申请的学校在美国。
当时我也很犹豫的想去工作(玛德,没工作过没见过那么多钱啊啊啊啊啊),大不了工作几年再出国。
不过最后忘记了哪个人问我的一个问题让我下定了决心,那人问“你工作了两三年还会想要出国么?”。我仔细想了答案,自己的答案是“不会”。
七八年的时间发生了很多,到目前为止我依然很欣慰当时的决定,那个决定让我得到了不一样的生活(也许是更好的生活?不过谁知道呢,每一次的选择只能选一条路,我们永远不知道另一条路会带给我们什么 ;))。

同楼上的建议不同的是,我还是希望楼主去外面看看。一条路你至少能看到未来两年的发展,而另一条路,从第一天开始就充满了未知……

不过不管楼主怎么选,我们都相信你做出的选择一定是对的~ 选一条路,牛 x 轰轰的走下去就一定不会错辣 ;)~
@Tomotoes 感谢,看来不是我手机的问题了[捂脸逃],希望早点修复了
2020-05-08 04:59:10 +08:00
回复了 chrisniael 创建的主题 机械键盘 通过 Arduino 把 USB 键盘 转成 PS/2 接口
点赞!~之前自己也玩了一段时间 arduino,觉得这东西潜力无穷,尤其第三方兼容板 nodemcu 之类的,不到 10 块钱 cpu mem 和 wifi 都有了!关键是点子,能想到用它做啥的创意,楼主的创意不错~
2020-04-29 02:35:50 +08:00
回复了 fishCatcher 创建的主题 C++ 关于提高 c++水平的一个疑问
我是工作之后才开始“真正”学习并使用 c++的,到现在已经快 5 年了,而且如果只说 c++的话直到现在在工作上解 bug 或看别人的代码依然会时不时的发出“卧槽原来还可以这样!”的惊叹。
作为一个跟你的计划经历相似的人(肉翻读研+leetcode+工作……),一些小小的建议(当然只是建议哈~每个人的情况都或多或少的不一样,只是希望对你有点帮助;)):
* 对付大厂面试性价比高的方式是刷题+练习口语
* 小公司才可能多一点会看你自己做出了什么项目,可不可以展示
* c++对于刷题和做项目成本太高,python 和 java 作为第一和第二选择应该会比 c++好很多
我用 nomachine 之前也用过 geforce now+moonlight,后者延迟比前者好,但是前者运行起来更方便,也不需要 nvidia 的显卡
2020-04-06 10:42:35 +08:00
回复了 CismonX 创建的主题 问与答 求助,朋友遇到的一道 C++ 面试题
T T 咋在回复里高亮 c++代码啊?
2020-04-06 10:34:09 +08:00
回复了 CismonX 创建的主题 问与答 求助,朋友遇到的一道 C++ 面试题
稍微修改了一下你的原答案,不好意思可能写得有点乱,有些地方很冗余。在 https://wandbox.org/上简单的测试过~ 出错的地方还请大家指教 ;)

```c++
#include <vector>
#include <tuple>

using namespace std;

template <typename... Ts>
struct my_tuple;

template<typename A, typename B>
struct tuple_contains;

template <typename checkT>
struct tuple_contains<std::tuple<>, checkT>
{
constexpr static bool value = false;
};

template <typename headT, typename checkT>
struct tuple_contains<std::tuple<headT>, checkT>
{
constexpr static bool value = std::is_same<headT, checkT>::value;
};

template <typename headT, typename... tailT, typename checkT>
struct tuple_contains<std::tuple<headT, tailT...>, checkT>
{
constexpr static bool value = std::is_same<headT, checkT>::value || tuple_contains<std::tuple<tailT...>, checkT>::value;
};

template<typename A, typename B>
struct tuple_count;

template <typename checkT>
struct tuple_count<std::tuple<>, checkT>
{
constexpr static size_t value = 0;
};

template <typename headT, typename checkT>
struct tuple_count<std::tuple<headT>, checkT>
{
constexpr static size_t value = std::is_same<headT, checkT>::value ? 1 : 0;
};

template <typename headT, typename... tailT, typename checkT>
struct tuple_count<std::tuple<headT, tailT...>, checkT>
{
constexpr static size_t value = (std::is_same<headT, checkT>::value ? 1 : 0 ) + tuple_count<std::tuple<tailT...>, checkT>::value;
};

template<typename A>
struct check_tuple_unique;

template<>
struct check_tuple_unique<std::tuple<>>
{
constexpr static bool value = true;
};

template <typename headT>
struct check_tuple_unique<std::tuple<headT>>
{
constexpr static bool value = true;
};

template <typename headT, typename... tailT>
struct check_tuple_unique<std::tuple<headT, tailT...>>
{
constexpr static bool value = (tuple_count<std::tuple<tailT...>, headT>::value == 0) && check_tuple_unique<std::tuple<tailT...>>::value == true;
};

template<typename A, typename B, typename C>
struct index_of_details;

template <typename... leftT, typename headT, typename checkT>
struct index_of_details<std::tuple<leftT...>, std::tuple<headT>, checkT>
{
constexpr static size_t value = std::is_same<headT, checkT>::value ? tuple_size<std::tuple<leftT...>>::value : -1;
};

template <typename... leftT, typename headT, typename... tailT, typename checkT>
struct index_of_details<std::tuple<leftT...>, std::tuple<headT, tailT...>, checkT>
{
constexpr static size_t value = std::is_same<headT, checkT>::value ? tuple_size<std::tuple<leftT...>>::value : index_of_details<std::tuple<leftT..., headT>, std::tuple<tailT...>, checkT>::value;
};

template<typename A, typename B>
struct index_of;

template <typename checkT, typename... tailT>
struct index_of<std::tuple<tailT...>, checkT>
{
constexpr static size_t value = index_of_details<std::tuple<>, std::tuple<tailT...>, checkT>::value;
};

template <typename... Ts>
struct my_tuple {
using T = std::tuple<Ts...>;

template <typename... Ks>
using append = my_tuple<Ts..., Ks...>;

my_tuple()
{
static_assert(check_tuple_unique<T>::value, "Wakaka! duplicated found!");
}

T instance;

template <std::size_t I>
std::tuple_element_t<I, T>& get() {
return std::get<I>(instance);
}

template<typename targetT>
auto& get() {
return std::get<index_of<T, targetT>::value>(instance);
}

};


int main()
{
static_assert(tuple_contains<std::tuple<>, int>::value == false, "wrong answer");
static_assert(tuple_contains<std::tuple<int>, int>::value == true, "wrong answer");
static_assert(tuple_contains<std::tuple<double, double>, int>::value == false, "wrong answer");

static_assert(tuple_count<std::tuple<>, int>::value == 0, "wrong answer");
static_assert(tuple_count<std::tuple<int>, int>::value == 1, "wrong answer");
static_assert(tuple_count<std::tuple<int, double, int>, int>::value == 2, "wrong answer");

static_assert(check_tuple_unique<std::tuple<>>::value == true, "wrong answer");
static_assert(check_tuple_unique<std::tuple<int>>::value == true, "wrong answer");
static_assert(check_tuple_unique<std::tuple<int, double, int>>::value == false, "wrong answer");
static_assert(check_tuple_unique<std::tuple<int, int>>::value == false, "wrong answer");
static_assert(check_tuple_unique<std::tuple<int, double, std::vector<int>>>::value == true, "wrong answer");

// this will fail
// auto tuple = my_tuple<int>::append<float, char, long>
// ::append<bool, double>
// ::append<std::vector<int>, int>();
auto tuple = my_tuple<int>::append<float, char, long>
::append<bool, double>
::append<std::vector<int>>();
std::vector<int>& vector = tuple.get<6>();
std::vector<int>& vector2 = tuple.get<std::vector<int>>();

auto tuple2 = my_tuple<int>::append<std::vector<int>>();
std::vector<int>& vector3 = tuple.get<std::vector<int>>();
int& vector4 = tuple.get<int>();
}
```
2020-03-08 02:38:20 +08:00
回复了 sytnishizuiai 创建的主题 NAS nas 硬盘声很响,下载器推荐
觉得硬盘吵不吵还是跟型号很有关系的,根据个人一些有限的经验:
东芝 N300 8t (竟然还标明 NAS 专用!)很吵
WD 红盘 3t WD30EFRX 和 8t 出奇的静音
WD 蓝盘 4t WD40EZRZ 出奇的静音
WD 蓝盘 3t WD30EZRZ 超级吵跟上面的东芝有一拼
因为有同是蓝盘 WD40EZRZ 和 WD30EZRZ 的不同体验,所以……要是真的想静音还是退了顺便去做做研究在决定买哪个型号吧
2020-02-06 00:01:14 +08:00
回复了 fyyz 创建的主题 C++ 就目前而言, C++最好用的 HTTP 客户端库是什么?
看到上面 @Buges 提到了 cpp-httplib,这个也非常非常棒!同样是 headers only 而且 API 用起来超简单,beast 需要你自己对 API 再包装一层达到类似 cpp-httplib 例子里的效果(类似例子在 https://github.com/boostorg/beast/blob/develop/example/http/server/ )。当初没有选择 cpp-httplib 的原因是:1. 个人维护,怕过几年没人继续维护这个工程了,升级会是个大问题,因为我们也是从 pion 迁移过来的,pion 就是个人维护然后放弃了。2. 不能在 gcc4.8 上编译,[捂脸 /逃]我们的一种系统只有 4.8。除此之外,个人项目墙裂推荐!
2020-02-05 23:16:21 +08:00
回复了 fyyz 创建的主题 C++ 就目前而言, C++最好用的 HTTP 客户端库是什么?
工作的地方因为有 c++ http 的硬性需求,也做过一段时间的调查,最后选择了 beast。beast 的另一外一个好处是 headers only,可以放在自己的源代码里,不用考虑库版本迁移,并且是 boost 组件之一,将来不同系统版本乃至跨平台只要有 boost 就能直接用!
2020-02-04 01:15:56 +08:00
回复了 iyg429 创建的主题 硬件 如何选购 Nvidia 显卡? 晕了?
@iyg429 上一代。20XX 系列相比 10XX 系列主要增加了光线追踪硬件单元 RTX,16XX 的版本是 20XX 的版本阉割了 RTX 的版本,*个人观点*是 RTX 在最近 3 年游戏上都不会流行起来,你不在乎 RTX 就更好办了,像楼上说的买大于 1650 (小于 20XX 的版本),游戏帧率(不考虑 RTX)大约 1660<1070(上代)<2060。参考: https://gpu.userbenchmark.com/Compare/Nvidia-RTX-2060-vs-Nvidia-GTX-1070/4034vs3609
2019-12-12 10:59:57 +08:00
回复了 minipeach 创建的主题 Android Redmi K30 发布: 骁龙 765G 首发, 5G 版售 1999 元
@shyy06 我绝对没有洗,我也与小米没有任何利益关系,只是想确认下情况,想跟您确认下 note3 中您使用的是这个系统级广告关闭功能么 => https://post.smzdm.com/p/ar08gn4w/
2019-12-11 21:57:46 +08:00
回复了 minipeach 创建的主题 Android Redmi K30 发布: 骁龙 765G 首发, 5G 版售 1999 元
@locoz 这个问题我的确自从推出了系统级广告关闭后没有遇到过,很多年的小米用户了,目前还有米 8 青春版和红米 5 不拉屎在服役。也许像你说的是机型不够老。还有一点只是想问下米 2s 中您用的是小米账户子项里面的“关闭广告”功能吗,我手头没有 2s 但知道是很老的机型,不知道 MIUI 的更新策略有没有吧新功能加到 2s 上
2019-12-11 12:46:01 +08:00
回复了 minipeach 创建的主题 Android Redmi K30 发布: 骁龙 765G 首发, 5G 版售 1999 元
@locoz 楼上的其实是想说 MIUI 几个月前已经增加关闭广告选项可以完全一键关闭所有系统广告了
1  2  3  4  5  6  7  8  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1021 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 52ms · UTC 18:40 · PVG 02:40 · LAX 11:40 · JFK 14:40
Developed with CodeLauncher
♥ Do have faith in what you're doing.