非常基本,但是很难在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的过程中,但我认为没有配置或参数或任何可以实现该目标的东西,是吗?
在数据框中有一个名为的变量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) 做一些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)
如果一些古茹能够阐明这一点,那将会很酷.
课程提问:
观察++运算符参数周围的括号.他们真的需要吗?删除它们会发生什么?
最初只有一个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) 在评估中,我在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) 我以为这个程序会打印出这个值-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) 我使用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)
我怎样才能获得这些属性?
这是一个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) 在示例程序中打印出2的幂,直到最高可能的整数值,我遇到了令人困惑的结果.
整数变量是有符号的,因此最高位用于符号.在我的机器上,整数的大小是4个字节,即32位.我期望最高可能的整数值为2 ^ 31.
令我感到困惑的是:我可以计算出的最高整数值是2 ^ 30.结果表明,2 ^ 31是最小整数值而不是最大值.此外,2 ^ 32应超过最大整数值,我预计会有不可预测的结果.相反它是0.
#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)
#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++示例代码,我的想法是它在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)