小编jke*_*eys的帖子

我在哪里可以找到好的C++源代码?

我正在学习C++作为第一语言.如果我不开始快速查看实际代码,我觉得我即将达到学习上限(我不是通过课程学习).以下是我的两个主要问题:

  1. 我在哪里可以找到源代码
  2. 什么是对代码质量的良好试金石(我显然从未在工作环境中开发)

我希望这与SO相关,但我可以看到需要关闭它.谢谢您的帮助.


有关:

"现代C++"的例子在起作用?

c++

18
推荐指数
1
解决办法
3万
查看次数

在C++中将数组作为参数传递

我正在编写一个合并排序函数,现在我只使用一个测试用例数组(没有输入 - 这是静态的,现在).我不知道如何将数组作为参数传递.这是我现在的代码:

//merge sort first attempt

#include <iostream>

#include <algorithm>

#include <vector>

int mergeSort(int[]);
int main() {
    int originalarray[] = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 10 };
    mergeSort(originalarray[]);
}

int mergeSort(int[] originalarray) {
    int num = (sizeof(originalarray) / sizeof(int));
    std::vector < int > original(num);

    if (num > 2) {
        return num;
    }

    // Fill the array using the elements of originalarray
    // This is just for demonstration, normally original will be a parameter,
    // …
Run Code Online (Sandbox Code Playgroud)

c++ arrays sorting mergesort divide-and-conquer

13
推荐指数
2
解决办法
5万
查看次数

12
推荐指数
5
解决办法
8万
查看次数

你能在堆上声明一个指针吗?

这是在C++中在堆上创建变量的方法:

T *ptr = new T;
Run Code Online (Sandbox Code Playgroud)

ptr显然是指向新T的指针.我的问题是,你能做到这一点:

T *ptr = new T*;
Run Code Online (Sandbox Code Playgroud)

这似乎可能导致一些非常非常危险的代码.有谁知道这是否可行/如何正确使用它?

c++ heap-memory dynamic-memory-allocation

11
推荐指数
2
解决办法
7405
查看次数

如何从Scala中的列表中单独"删除"单个元素并缩小差距?

列表在Scala中是不可变的,所以我试图弄清楚如何"删除" - 实际上,创建一个新的集合 - 该元素然后关闭列表中创建的间隙.这听起来像是一个使用地图的好地方,但我不知道如何开始这个实例.

课程是一个字符串列表.我需要这个循环,因为我实际上有几个列表,我需要删除该索引处的元素(我使用多个列表来存储列表中的数据,我只是通过简单地确保索引将始终这样做跨列表对应).

  for (i <- 0 until courses.length){
    if (input == courses(i) {
    //I need a map call on each list here to remove that element
    //this element is not guaranteed to be at the front or the end of the list
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

让我为这个问题添加一些细节.我有四个列表,通过索引相互关联; 一个列表存储过程的名称,这个类在一个简单的INT格式(即130)开始的时候一个店,一个店或者"AM"或"PM",以及一个存储类为int(所以"MWF"的日子evals to 1,"TR"evals to 2,等等.我不知道是否有多个这是解决这个问题的最佳或"正确"的方法,但这些都是我所拥有的工具(自从我16岁以来没有认真编程的第一年comp sci学生).我正在编写一个函数来从每个列表中删除相应的元素,我所知道的是1)索引对应,2)用户输入课程名称.如何使用filterNot从每个列表中删除相应的元素?我认为我对每个列表都不了解,以便对它们使用更高阶的函数.

functional-programming scala list filter

10
推荐指数
2
解决办法
1万
查看次数

你可以在初始化后调整C++数组的大小吗?

我正在学习编程,而C++是我的第一语言.不要打扰使用指针来展示我 - 我还不了解它们,并且在我有更多的空闲时间专注于此之前不会打扰.

    int mergeSort()
{
    const int n = 9;
    int originalarray[n] = {1, 3, 5, 7, 9, 2, 4, 6, 8};


    const int halfelements = (sizeof(originalarray) / sizeof(int)) / 2;
    int farray[halfelements];
    int sarray[halfelements];

    for (int i = 0; i < halfelements; i++) {
        farray[i] = originalarray[i];
    }

    for (int i = halfelements, x = 0; i < (halfelements * 2); i++, x++) {
        sarray[x] = originalarray[i];
    }
Run Code Online (Sandbox Code Playgroud)

我被分配(我不上课 - 只是与几个朋友帮我解决)合并排序算法,算法解释但不是实现.我想重写这个,所以它适用于奇数和偶数整数.我尝试添加此代码:

if ((n % 2) != 0) int …
Run Code Online (Sandbox Code Playgroud)

c++ arrays resize sizeof

9
推荐指数
1
解决办法
3万
查看次数

编译器是否决定何时内联我的函数(在C++中)?

我知道你可以使用inline关键字,或者只是将一个方法放在类声明ala short ctor或getter方法中,但编译器是否最终决定何时内联我的方法?

例如:

inline void Foo::vLongBar()
{
   //several function calls and lines of code
}
Run Code Online (Sandbox Code Playgroud)

如果编译器认为它会使我的代码效率低下,它会忽略我的内联声明吗?

作为一个副作用,如果我在我的类之外声明了一个getter方法,如下所示:

void Foo::bar() { std::cout << "baz"; }
Run Code Online (Sandbox Code Playgroud)

编译器是否会在内幕中内联这个内容?

c++ compiler-theory compiler-optimization

9
推荐指数
3
解决办法
5386
查看次数

为什么乘法比划分便宜?

我最近写了一个Vector 3类,并将我的normalize()函数提交给了朋友.他说它很好,但是我应该尽可能地乘以倒数,因为在CPU时间里"乘法比划分便宜".

我的问题很简单,那是为什么?

theory performance cpu-usage

8
推荐指数
2
解决办法
3809
查看次数

放大配置

我已经安装了'amplify-cli'。当我输入“放大配置”时,我收到错误消息:

“放大不是内部或外部命令,也不是可运行的程序或批处理文件”。

amazon-web-services aws-amplify aws-amplify-cli

8
推荐指数
1
解决办法
6442
查看次数

是否可以使用"删除此项"删除当前对象?

我正在编写一个链表,我想要一个struct的析构函数(一个Node结构)来简单地删除它自己,并且没有任何副作用.我希望我的列表的析构函数迭代地自己调用Node析构函数(临时存储下一个节点),如下所示:

//my list class has first and last pointers
//and my nodes each have a pointer to the previous and next
//node
DoublyLinkedList::~DoublyLinkedList
{
    Node *temp = first();

    while (temp->next() != NULL)
    {
        delete temp;
        temp = temp->next();
    }
}
Run Code Online (Sandbox Code Playgroud)

所以这将是我的Node析构函数:

Node::~Node
{
   delete this;
}
Run Code Online (Sandbox Code Playgroud)

这是否可以接受,特别是在这种情况下?

c++ destructor linked-list this self-destruction

7
推荐指数
1
解决办法
2237
查看次数