小编Ely*_*Ely的帖子

C ++-是否可以在不指定类型的情况下实例化“ vector”?

非常基本,但是很难在Google中为我搜索。

我正在在线上进行C ++培训课程,主题是STL。在这种情况下vector

是否可以在vector不指定类型的情况下实例化a ?

#include <vector>
#include <iostream>

using namespace std;

int main()
{
    vector v1(10, 0);
    cout<<"Size: "<<v1.size()<<endl;
    for(unsigned i = 0; i < v1.size(); ++i)
    {
        cout<< v1[i]<<" ";
    }
    cout<<endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我认为这是错误的,但是我在整个课程中都看到了这一点,这使我感到困惑。

使用时vector<int> v1(10, 0)它会编译,这就是我的想法。

在使用NetBeans的过程中,但我认为没有配置或参数或任何可以实现该目标的东西,是吗?

c++ stl vector

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

如何在不丢失R中的NA值的情况下有条件地从数据帧中删除观测值?

在数据框中有一个名为的变量YOB.如您所见,有333个NA值.

> summary(train$YOB)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
   1880    1970    1983    1980    1993    2039     333 
Run Code Online (Sandbox Code Playgroud)

我发现了一些异常值并希望摆脱它们.任何低于1900且大于2003的东西都应被删除.我尝试通过索引来做到这一点.

train = train[which(train$YOB >= 1900 & train$YOB <= 2003),]
Run Code Online (Sandbox Code Playgroud)

不幸的是,其YOB变量的观察NA也被删除了.

> summary(train$YOB)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1900    1970    1983    1980    1993    2003 
Run Code Online (Sandbox Code Playgroud)

另外,在使用subset命令时我遇到了同样的问题.

> train = subset(train, YOB >= 1900 & YOB <= 2003)
> summary(train$YOB)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1900    1970 …
Run Code Online (Sandbox Code Playgroud)

r subset missing-data na

5
推荐指数
1
解决办法
156
查看次数

为什么这些明确的表达式在JavaScript中有所不同?

做一些JavaScript学习和玩弄语法.在JavaScript中,分号是可选的.建议使用它们,但在某些情况下,规范似乎并未强加它们.特别是据说当没有歧义时,无论你是否使用它们都没有区别.

我找到了这个例子(我用谷歌搜索的一个练习),但没有解释.我认为分号在这里不应该有所作为,但确实如此.我不认为这里有歧义,为什么它应该是不同的.我试着玩一些例子,它看起来真的不一样.不能包围我的头:-(

var y = x + f
(a+b).toString()
Run Code Online (Sandbox Code Playgroud)

var y = x + f;
(a+b).toString();
Run Code Online (Sandbox Code Playgroud)

如果一些古茹能够阐明这一点,那将会很酷.

javascript

4
推荐指数
2
解决办法
98
查看次数

具有预增量的C++箭头运算符:有或没有括号是一样的吗?

课程提问:

观察++运算符参数周围的括号.他们真的需要吗?删除它们会发生什么?

最初只有一个cout表达式.我添加了另一个来看看差异,就像这样:

#include <iostream>
using namespace std;

class Class {
public:

    Class(void) {
        cout << "Object constructed!" << endl;
    }

    ~Class(void) {
        cout << "Object destructed!" << endl;
    }
    int value;
};

int main(void) {
    Class *ptr;

    ptr = new Class;
    ptr -> value = 0;
    cout << ++(ptr -> value) << endl;
    cout << ++(ptr -> value) << endl;
    delete ptr;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的想法是在没有括号的情况下再次测试它,看看有什么不同:

    ...
    cout << ++ptr -> value << endl;
    cout << ++ptr …
Run Code Online (Sandbox Code Playgroud)

c++

4
推荐指数
1
解决办法
1014
查看次数

使用(STL)副本具有不确定的行为?

在评估中,我在LINE I上选择了选项运行时错误。尽管我认为那是正确的选择,但没有“ 未定义的行为”这样的选项。

我不确定,但我认为评估中有错误。我编译并运行了该程序,并确实3, 9, 0, 2, 1, 4, 5,使用三种不同的编译器(Cpp.sh在此以及在Mac OS X上本地)进行打印。

程序是否由于LINE I而具有未定义的行为?

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
void printer(int i) {
        cout << i << ", ";
}
int main() {
        int mynumbers[] = { 3, 9, 0, 2, 1, 4, 5 };
        vector<int> v1(mynumbers, mynumbers + 7);
        copy(mynumbers, mynumbers + 7, v1.end());//LINE I
        for_each(v1.begin(), v1.end(), printer);//LINE II
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ stl

4
推荐指数
1
解决办法
54
查看次数

C预处理器 - 令牌粘贴 - 令人困惑的结果.这是为什么?

我以为这个程序会打印出这个值-12--2=-10.当我运行它时,它会打印出来0.

我想不通为什么?任何提示?

#include <stdio.h> 
#define        ALPHA(x,y)        x##2-y 

int main(void) {
    int i = -1;
    int i2 = -2;
    printf("%d", ALPHA(i, i2));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c concatenation c-preprocessor

3
推荐指数
4
解决办法
154
查看次数

无法获取DBpedia类的所有属性

我使用Sparql来获取具有此代码的特定类的所有属性.

PREFIX db: <http://dbpedia.org/resource/>
PREFIX prop: <http://dbpedia.org/property/>
PREFIX onto: <http://dbpedia.org/ontology/>
select ?property ?value 
where { db:Thin-film-transistor_liquid-crystal_display ?property ?value . }
Run Code Online (Sandbox Code Playgroud)

但是,输出结果缺少一些属性:

is dbpprop:display of   dbpedia:IPhone_4S
                        dbpedia:IPhone_5S
is dbpprop:industry of  dbpedia:InnoLux_Corporation
is dbpprop:paneltype of dbpedia:Dell_monitors
is dbpprop:products of  dbpedia:Zalman
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得这些属性?

sparql dbpedia

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

foldLeft在地图上 - 为什么这样做?

这是一个Coursera课程,直到现在没有人可以帮助我.以下作品取自演讲.

object polynomials {

  class Poly(terms0: Map[Int, Double]) {

    def this(bindings: (Int, Double)*) = this(bindings.toMap)

    val terms = terms0 withDefaultValue 0.0

    def +(other: Poly) = new Poly((other.terms foldLeft terms)(addTerm))

    def addTerm(terms: Map[Int, Double], term: (Int, Double)) : Map[Int, Double]= {
      val (exp, coeff) = term
      terms + (exp -> (coeff + terms(exp)))
    }

    override def toString =
      (for ((exp, coeff) <- terms.toList.sorted.reverse)
        yield coeff+"x^"+exp) mkString " + "
  }

  val p1 = new Poly(1 -> 2.0, 3 -> 4.0, 5 …
Run Code Online (Sandbox Code Playgroud)

scala foldleft

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

C/C++中int类型的最高值.为什么我不能在这个例子中正确计算它?

在示例程序中打印出2的幂,直到最高可能的整数值,我遇到了令人困惑的结果.

整数变量是有符号的,因此最高位用于符号.在我的机器上,整数的大小是4个字节,即32位.我期望最高可能的整数值为2 ^ 31.

令我感到困惑的是:我可以计算出的最高整数值是2 ^ 30.结果表明,2 ^ 31是最小整数值而不是最大值.此外,2 ^ 32应超过最大整数值,我预计会有不可预测的结果.相反它是0.

C中的示例:

#include <stdio.h>
#include <limits.h>

int main(void) {
    int exp;
    int pow = 1;

    for (exp = 0; exp < 33; exp++) {
        printf("2 to the power of %d is %d\n", exp, pow);
        pow *= 2;
    }

    printf("%d\n", INT_MIN);
    printf("%d\n", INT_MAX);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

C++中的示例:

#include <iostream>
#include <limits>

using namespace std;

int main(void) {
    int pow = 1;

    for (int exp = 0; exp < 33; exp++) { …
Run Code Online (Sandbox Code Playgroud)

c c++ integer limits max

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

为什么在访问C++中的past-the-end元素时没有运行时错误?

我有以下C++示例代码,我的想法是它在LINE II抛出运行时错误.

#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
void printer(int i) {
        cout << i << ", ";
}
int main() {
        int mynumbers1[]={3, 9, 0, 2};
        int mynumbers2[]={6, 1, 4, 5};
        vector<int> v1(7);
        sort(mynumbers2, mynumbers2 + 4);
        sort(mynumbers1, mynumbers1 + 4);//LINE I
        merge(mynumbers1, mynumbers1+5, mynumbers2, mynumbers2+5, v1.begin());//LINE II
        for_each(v1.begin(), v1.end(), printer);
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是,该程序的输出实际上是:

0, 1, 2, 3, 4, 5, 6, 
Run Code Online (Sandbox Code Playgroud)

如果我改变,例如,合并的第二个参数,mynumbers1+6那么我得到一个运行时错误:

*** Error in `./program': free(): invalid next size (fast): 0x0000000002468010 *** …
Run Code Online (Sandbox Code Playgroud)

c++ arrays runtime-error vector

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