小编Abh*_*pta的帖子

通配符在makefile中的含义是什么?

我在makefile教程中找到了以下几行,但是我对粗线有些问题.

在一行,如果我写

program_C_SRCS:=$(*.c)
Run Code Online (Sandbox Code Playgroud)

这是行不通的.所以请告诉我在这里做什么是通配符.这个词是否仅限于makefile?

在教程中写道,第二行将执行测试替换.谁能告诉我一些关于这个文本替换的事情?

如果我的问题非常基础,请原谅我,因为我是新手制作文件.

教程链接

CC:=g++
program_NAME:=myprogram
**program_C_SRCS:=$(wildcard *.c)**  # 1 line 
program_CXX_SRCS:=$(wildcard *.cc)
**program_C_OBJ:=$(program_C_SRCS:.c=.o)** # 2 line
program_CXX_OBJ:=$(program_CXX_SRCS:.c=.o)
program_OBJ:= $(program_C_OBJ) $(program_CXX_OBJ)
Run Code Online (Sandbox Code Playgroud)

makefile

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

重载operator - ()作为自由函数而不是成员函数的意义?

我正在阅读C++ FAQ.在那里我发现操作符重载使用指南中有一点:

如果您提供构造性运算符,则它们应该允许提升左侧操作数(至少在类具有未使用explicit关键字标记的单参数ctor的情况下).例如,如果您的类Fraction支持从int到Fraction的提升(通过非显式ctor Fraction :: Fraction(int)),并且如果允许x-y用于两个Fraction对象,则还应允许42-y.在实践中,这仅仅意味着您的operator-()不应该是Fraction的成员函数.通常你会把它变成朋友,如果没有其他原因而不是强迫它进入公众:类的一部分,但即使它不是朋友,它也不应该是成员.

为什么作者写了operator-()不应该是成员函数?

如果我将operator-()作为成员函数以及其他后果会有什么不良后果?

c++ operator-overloading

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

TableLayout 与回收器视图?

我正在开发一个 android 应用程序,它将允许用户创建民意调查。用户可以创建问题并提供一组选项。

我想提供一个功能,用户可以在其中动态添加或删除选项。

我无法决定哪种布局最好。

TableLayout - 每行可以包含一个选项。与 RecyclerView - 每个项目都可以是一个选项。

(请注意,每个选项实际上都是一个 EditText 视图,用户必须在其中输入选项内容。)

我见过人们通常将 RecyclerView 用于非常大的数据集,但对于我的用例,用户最多可以添加 5 或 6 个选项。除此之外,我将使用回收器视图来收集数据。对于这样的用例,使用 RecyclerView 或其他东西是一个不错的选择吗?

请提供建议

android tablelayout android-layout android-recyclerview

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

如何有效地散列ip-address

这是一个面试问题.我想过像multiway-hashing这样的解决方案,却找不到优雅的东西.请提出一些好的方法.

问题:您有1000万个IP地址.(IPv4 4字节地址).为这些IP地址创建哈希函数.

提示:使用IP本身作为关键是一个坏主意,因为会浪费很多空间

algorithm hash

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

linux中的jobs和ps命令有什么区别?

请告诉我unix操作系统中两个命令作业和ps显示的信息差异?

unix linux

6
推荐指数
1
解决办法
9151
查看次数

如何在unix中从终端分离进程?

当我在终端中启动后台进程时,如果终端如何关闭,那么我们就不能再与该进程交互了.我不确定,但我认为这个过程也会被杀死.任何人都可以告诉我如何从终端分离该过程.所以,即使我关闭终端,那么我可以在新终端中与相同的进程进行交互?

我是unix的新手,所以你的额外信息对我有帮助.

unix

6
推荐指数
2
解决办法
9530
查看次数

3.5和3.5f在C++中是否相同?

可能重复:
浮点数与浮点字面值的比较中的奇怪输出
为什么比较double和float导致意外结果?

在下面的代码中我希望答案是"不相等",因为默认情况下3.5 应该是doubleC++,但结果是"相等".

声明float a=3.5ffloat a=3.5?有什么区别?

#include<iostream>
using namespace std;

int main()
{
    float a=3.5;
    if(a==3.5)  
        cout<<"equal"<<endl;
    else
        cout<<"Not equal"<<endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ floating-point number-formatting

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

为什么这不能作为成员函数中的默认参数传递?

我试图将当前长度值作为默认参数作为函数参数传递.但编译器显示错误

"'这个'可能不会在这种情况下使用"

任何人都可以告诉我我犯的错误是什么.?

class A
{

    private:
    int length;
    public:
    A();
    void display(int l=this->length)
    {
        cout<<"the length is "<<l<<endl;
    }

};


int main()
{

    A a;
    a.display();    
    return 0;

}
Run Code Online (Sandbox Code Playgroud)

c++

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

为什么在创建向量<A>时,类A的构造函数和析构函数被调用一次?

在最后的节目中,我得到了这样的输出.

   constructor is called
   destructor is called
   destructor is called
   destructor is called
   destructor is called
   destructor is called
   destructor is called
Run Code Online (Sandbox Code Playgroud)

我能够弄清楚,如果因为五次调用析构函数而调用最后五行构函数.但我无法理解前两行.为什么构造函数只被调用一次,然后在下一行调用析构函数.

请解释一下.谢谢

class A {
    public :
    string name;
    int age;
    A(){    cout << "constructor is called" << endl;  }
    ~A() {   cout << "destructor is called"<< endl;   }
};

int main()
{
    vector<class A> vec(5);
    cout << vec.size() << endl;
    return 0;
 }
Run Code Online (Sandbox Code Playgroud)

c++ stl

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

为什么这个使用std :: sort与自定义比较器不能编译?

我尝试使用排序算法来排序向量的元素.这是我的代码片段.

比较

struct comparator
 {
    bool operator() ( OptVector<pair<int, pair<CgpPop*,CgpPop*> > >::iterator it1, OptVector<pair<int, pair<CgpPop*,CgpPop*> > >::iterator it2)
    {
            return ( ((*it1).first) < ((*it2).first));
    }
} o_comparator;
Run Code Online (Sandbox Code Playgroud)

我的向量 - 这里的OptVector是一个包装器,它的行为方式与标准的c ++向量相同.

OptVector< pair<int, pair<CgpPop*,CgpPop*> > > pll_units;
Run Code Online (Sandbox Code Playgroud)

打电话给algo

sort<OptVector< pair<int, pair<CgpPop*,CgpPop*> > >::iterator > (pll_units.begin(), pll_units.end(), o_comparator);
Run Code Online (Sandbox Code Playgroud)

但是编译器会抛出以下错误

/calm/svr/sql/generic/stlinclude/stl/_algo.c: In function ‘const _Tp& _STL::__median(const _Tp&, const _Tp&, const _Tp&, _Compare) [with _Tp = _STL::pair<int, _STL::pair<CgpPop*, CgpPop*> >, _Compare = comparator]’:
/calm/svr/sql/generic/stlinclude/stl/_algo.c:820:   instantiated from ‘void _STL::__introsort_loop(_RandomAccessIter, _RandomAccessIter, _Tp*, _Size, _Compare) [with …
Run Code Online (Sandbox Code Playgroud)

c++ templates stl

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

是(int*)和(int [])是一样的吗?

可能重复:
gcc编译错误:cast指定数组类型

我想检查(int*)和(int [])的区别.当我编译以下代码时,第一行就可以了.但对于第2行,我的编译器给出以下错误:

test.c:10: error: cast specifies array type
Run Code Online (Sandbox Code Playgroud)

请问任何人请告诉我这个错误的含义以及我在哪里错了?

#include<stdio.h>

void abc(int *a)
{
        int i;
        for(i=0;i<2;i++)
        {
            printf("%d",((int * )a)[i]);  //(1)
            printf("%d",((int [])a)[i]); //(2)
        }
}

int main()
{
    int b[2]={0,1};
    abc(b);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c

0
推荐指数
1
解决办法
406
查看次数

什么是就地算法?

假设我想从字符串中删除重复项.我决定使用长度为256的布尔数组来存储特定字符是否已经出现.我可以遍历字符串,并可以借助此辅助布尔数组删除所有重复项.

我的问题是"这个算法是否就位?"

我认为它使用的是恒定的空间量,它不会随着它应该就地输入的大小而改变.如果我错了,请纠正.

string algorithm traversal duplicates in-place

0
推荐指数
1
解决办法
167
查看次数