我怀疑与C++中的朋友函数有关.Friend函数不是claas的成员函数,可以直接从main调用.那么,如果我们将friend
函数保持在private
或public
部分内部,它会有什么不同class
.我一般都注意到这些friend
功能总是在公共部分.在什么情况下我们应该保持friend
功能private
.
可能重复:
如何在Python中读取Excel格式的日期?
我的日期可以在excel文件的任何字段中,但是当我使用python xlrd读取它时,它被读作浮点数.有没有办法将所有excel单元格读取为字符串?
我想准备一个脚本来生成一个文件,其中excel文件中的所有值都由管道分隔,但这个日期的事情正在产生问题.
对"this"指针的操作是否会调用构造函数?
我有一个构造函数定义如下
Cents(int cents)
{
cout<<"in cents constructor\n";
m_cents = cents;
}
friend Cents operator + (const Cents &c1, const Cents &c2)
{
return Cents(c1.m_cents + c2.m_cents);
}
Cents operator ++ (int)
{
cout<<"In c++ function\n";
Cents c(m_cents);
*this = *this + 1 ;
return c;
}
Run Code Online (Sandbox Code Playgroud)
在主要功能我... ...
Cents c;
cout<<"Before post incrementing\n";
c++; //This part is calling the constructor thrice
Run Code Online (Sandbox Code Playgroud)
现在,如果我正在做一些像*this = *this + 1
.它调用此构造函数两次.
究竟是怎么回事.是否*this
创建临时对象并将值分配给原始对象?
我有一个RDD的形式
org.apache.spark.rdd.RDD[(String, Array[String])]
Run Code Online (Sandbox Code Playgroud)
我想把它写成一个csv文件.请建议我如何做到这一点.
在myrdd.saveAsTextFile上执行输出如下所示.
(875,[Ljava.lang.String;@53620618)
(875,[Ljava.lang.String;@487e3c6c)
Run Code Online (Sandbox Code Playgroud) 我是线程新手.在这里,如果我评论pthread_join(thread1,NULL),那么在输出中有时我会得到
Thread2
Thread1
Thread1
Run Code Online (Sandbox Code Playgroud)
我无法理解为什么Thread1跟踪会出现两次以及pthread_join的确切功能是什么.
另外,请参考一些关于初学者的线程概念的教程.
void *print_message_function( void *ptr );
main()
{
pthread_t thread1, thread2;
char *message1 = "Thread 1";
char *message2 = "Thread 2";
int iret1, iret2;
iret1 = pthread_create( &thread1, NULL, print_message_function, (void*) message1);
iret2 = pthread_create( &thread2, NULL, print_message_function, (void*) message2);
pthread_join( thread1, NULL);
pthread_join( thread2, NULL);
printf("Thread 1 returns: %d\n",iret1);
printf("Thread 2 returns: %d\n",iret2);
exit(0);
}
void *print_message_function( void *ptr )
{
char *message;
message = (char *) ptr;
printf("%s \n", message);
}
Run Code Online (Sandbox Code Playgroud) 我的代码崩溃了java.util.NoSuchElementException:接下来是空迭代器异常.
def myfunction(arr : Array[(Int,(String,Int))]) = {
val values = (arr.sortBy(x => (-x._2._2, x._2._1.head)).toList)
...........................
Run Code Online (Sandbox Code Playgroud)
代码在我试图对数组进行排序的第一行崩溃.
var arr = Array((1,("kk",1)),(1,("hh",1)),(1,("jj",3)),(1,("pp",3)))
Run Code Online (Sandbox Code Playgroud)
我试图在内部元组的第二个元素的基础上对数组进行排序.如果存在相等性,则应该对内部元组的第一个元素进行排序.
输出 - ((1,("pp",3)),(1,("jj",3)),(1,("hh",1)),(1,("kk",1)) )
这在一些情况下崩溃(通常它工作正常),我猜是由于空数组.
我怎样才能摆脱这种崩溃或任何其他优雅的方式来实现相同的结果.
有人可以解释在涉及虚函数的虚拟继承的情况下类的大小.
class A{
char k[ 3 ];
public:
virtual void a(){};
};
class B : public A{
char j[ 3 ];
public:
virtual void b(){};
};
class C : public virtual A{
char i[ 3 ];
public:
virtual void c(){};
};
class D : public B, public C{
char h[ 3 ];
public:
virtual void d(){};
};
Run Code Online (Sandbox Code Playgroud)
类的大小输出是:
sizeof(A): 8
sizeof(B): 12
sizeof(C): 16
sizeof(D): 32
Run Code Online (Sandbox Code Playgroud)
我正在使用的编译器是
gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3)
我在启动spark-sql shell时收到以下错误.
但是当我使用命令启动shell时它可以工作
./spark-sql --jars /usr/local/hive/lib/mysql-connector-java.jar
Run Code Online (Sandbox Code Playgroud)
但是当我使用下面的comamnd以相同的方式启动thrift服务器时,它会再次抛出相同的错误.
/usr/local/spark/sbin/start-thriftserver.sh --jars /usr/local/hive/lib/mysql-connector-java.jar
Run Code Online (Sandbox Code Playgroud)
请帮助我理解如何解决这个问题,以便我不必在外部传递jar路径,为什么它适用于spark-sql案例而不是thrift服务器.我是否需要在缺少的地方设置classpath?
如果您还有其他需要,请告诉我.
5/10/18 05:15:33 INFO server.Server: jetty-8.y.z-SNAPSHOT
15/10/18 05:15:33 INFO server.AbstractConnector: Started SocketConnector@0.0.0.0:47703
15/10/18 05:15:33 INFO util.Utils: Successfully started service 'HTTP file server' on port 47703.
15/10/18 05:15:33 INFO spark.SparkEnv: Registering OutputCommitCoordinator
15/10/18 05:15:38 INFO server.Server: jetty-8.y.z-SNAPSHOT
15/10/18 05:15:38 INFO server.AbstractConnector: Started SelectChannelConnector@0.0.0.0:4040
15/10/18 05:15:38 INFO util.Utils: Successfully started service 'SparkUI' on port 4040.
15/10/18 05:15:38 INFO ui.SparkUI: Started SparkUI at http://192.168.1.12:4040
15/10/18 05:15:38 INFO spark.SparkContext: Added JAR file:/usr/local/hive/lib/mysql-connector-java.jar at …
Run Code Online (Sandbox Code Playgroud) 可能重复:
C/C++更改const的值
以下程序:
int main()
{
const int x = 10;
int * p = (int *)&x;
*p = 12;
cout<<x<<endl;
cout<<*p<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
给出一个输出:
10
12
Run Code Online (Sandbox Code Playgroud)
cast&x对(int*)有什么影响?为什么x的值仍为10?我预计它会是12.
另一个疑问
为什么我们不能把int**说成int const**?相反,此操作有效
void f(int const ** p);
void g(int const * const * p);
int main()
{
int ** p = /*....*/
f(p); //Error
g(p); //OK
}
Run Code Online (Sandbox Code Playgroud)
请通过合适的示例帮助我理解这一点谢谢!
c++ ×5
apache-spark ×3
scala ×2
c ×1
constructor ×1
hive ×1
mysql ×1
pointers ×1
polymorphism ×1
pthreads ×1
python ×1
virtual ×1
xlrd ×1