GPT火了很久,被各种媒体吹上了天,但是因为工作原因,一直没有机会去真正的尝试,最近终于有了一天的空闲时间,就想着好好看看GPT当前到底能干啥,如下是我针对不同类别,分别提出不同问题,GPT给的回答,如果有兴趣可以看看。
1. 定性问题
对于一些定性的问题,GPT不仅仅是会把结果给你,而且还贴心的为你整理了一下展示格式。
2.情感问题
情感问题给的答案非常符合现有的价值观,几乎是标准的处理方式。
3. 旅游计划
让我非常惊讶,这是一个具体到小时的计划,特地去查了航班,确实有一班早上九点十分从杭州出发,落地是11点55分。
4. 购物指导
5. 编程问题
编程是一个非常复杂的问题,涉及的面比较广,所以这里举得例子可能不够全面,可能是因为例子比较简单的原因,GPT给的答案都非常好。
template <typename T>
class LockFreeQueue {
public:// 构造函数LockFreeQueue(size_t capacity): capacity_(capacity), buffer_(new T[capacity]), head_(0), tail_(0) {}// 析构函数~LockFreeQueue() {delete[] buffer_;}// 生产者函数,往队列尾部插入数据bool Enqueue(const T& item) {size_t head = head_.load(std::memory_order_acquire);size_t tail = tail_.load(std::memory_order_relaxed);if (tail + 1 == head || (tail + 1 == capacity_ && head == 0)) {// 队列已满return false;}buffer_[tail] = item;tail_.store((tail + 1) % capacity_, std::memory_order_release);return true;}// 消费者函数,从队列头部弹出数据bool Dequeue(T& item) {size_t tail = tail_.load(std::memory_order_acquire);size_t head = head_.load(std::memory_order_relaxed);if (head == tail) {// 队列为空return false;}item = buffer_[head];head_.store((head + 1) % capacity_, std::memory_order_release);return true;}private:const size_t capacity_; // 缓冲区容量T* const buffer_; // 缓冲区指针,使用const修饰,防止被修改std::atomic<size_t> head_; // 队列头部std::atomic<size_t> tail_; // 队列尾部
};
6. 失败的问答
当然,GPT绝对是有底线的,有些问题会因为做不了或者不能做的原因而拒绝回答。