小编Kun*_*mar的帖子

朋友在C++中的功能

我怀疑与C++中的朋友函数有关.Friend函数不是claas的成员函数,可以直接从main调用.那么,如果我们将friend函数保持在privatepublic部分内部,它会有什么不同class.我一般都注意到这些friend功能总是在公共部分.在什么情况下我们应该保持friend功能private.

c++ friend-function

13
推荐指数
1
解决办法
814
查看次数

使用python xlrd将日期作为字符串读取而不是从excel中浮动

可能重复:
如何在Python中读取Excel格式的日期?

我的日期可以在excel文件的任何字段中,但是当我使用python xlrd读取它时,它被读作浮点数.有没有办法将所有excel单元格读取为字符串?

我想准备一个脚本来生成一个文件,其中excel文件中的所有值都由管道分隔,但这个日期的事情正在产生问题.

python xlrd

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

*这会调用构造函数?

对"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创建临时对象并将值分配给原始对象?

c++

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

将RDD写入csv

我有一个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)

scala apache-spark

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

在为该线程注释pthread_join时多次执行相同的线程子例程

我是线程新手.在这里,如果我评论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)

c multithreading pthreads

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

Scala代码与java.util.NoSuchElementException崩溃:接下来是空迭代器

我的代码崩溃了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)) )

这在一些情况下崩溃(通常它工作正常),我猜是由于空数组.

我怎样才能摆脱这种崩溃或任何其他优雅的方式来实现相同的结果.

scala apache-spark

6
推荐指数
2
解决办法
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)

c++ polymorphism virtual

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

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

启动spark sql和thrift服务器时,在类路径中找不到com.mysql.jdbc.Driver

我在启动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)

mysql hive mysql-connector apache-spark apache-spark-sql

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

指针铸造没有给出预期的结果

可能重复:
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++ pointers

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