小编Ray*_*hen的帖子

如何从专门用于自身的模板派生类?

我真的不知道如何描述这个,但这是代码:

class A : public std::vector<A>
{
};

//....

A a;
a.push_back(a);
Run Code Online (Sandbox Code Playgroud)

它做了什么,为什么要这样做?

c++ templates

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

将数组初始化为 0 需要多长时间?

我很困惑是否
int arr[n]={0}需要恒定的时间,即 O(1) 还是 O(n)?

c arrays initialization time-complexity

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

警告:函数“getline”的隐式声明

嗨,我几乎完成了课堂上的一个项目。我需要根据几个因素对航空公司中人员的优先级进行排序。这是我的项目描述:

“一家航空公司使用下面的公式来确定超额预订航班候补名单上乘客的优先级。优先级编号 = (A / 1000) + B - C 其中 A 是客户过去一年的总里程 B 是编号在他或她的常旅客计划中的年数 C 是一个序列号,表示客户在他或她预订航班时的到达位置。给定一个如下表所示的超额预订客户的文件,编写一个程序来读取文件并确定每个客户的优先级编号。程序然后使用优先级编号构建一个优先级队列,并按优先级顺序打印等待客户的列表。”

我觉得我的代码包含了主要思想,但我在使用 getline 时遇到了问题。当我编译代码(如下所示)时,它给了我一个错误:“|24|警告:函数‘getline’的隐式声明[-Wimplicit-function-declaration]|”

请帮我解决这个问题,这样它就会编译。我已经尝试了很多东西,但没有任何效果。

这是代码:

#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    FILE * fp; //create file pointer to be read later
    char * line = NULL;
    int temp,count=0,len=0,mileage[100],read,years[100],sequence[100],priority[100];
    char name[100][100],tempst[100];
    fp = fopen("customers.txt", "r"); //opening the file

    if (fp == NULL)
        exit(EXIT_FAILURE);
    int i;



    while ((read = getline(&line, &len, fp)) != -1) { //start reading file and recording …
Run Code Online (Sandbox Code Playgroud)

c project

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

求连接2N个点的线段的最小总长度

我试图通过暴力破解这个问题,但是当给定 7 (即 2*7 点)时,它似乎运行得很慢。

注意:我只需要运行到最大2*8点

问题陈述:

给定 2d 平面上的 2*N 个点,将它们成对连接以形成 N 条线段。最小化所有线段的总长度。

例子:

输入:5 10 10 20 10 5 5 1 1 120 3 6 6 50 60 3 24 6 9 0 0

输出:118.4

#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
#include <iomanip>
using namespace std;

class point{
public:
    double x, y;
};

double getLength(point a, point b){
    return hypot((a.x - b.x), (a.y - b.y));
}

static double mini = INT_MAX;

void solve(vector <point> vec, double …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm optimization performance brute-force

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

javascript 中区分大小写的排序,其中所有大写字母都位于所有小写字母之前

我需要以大写字母在前的方式对两个字符串进行排序,即使对于不同的字母也是如此,例如:

先于蚂蚁

CD出现在CD之前

我可以使用 localCompare 进行这样的排序吗?

const sortString = (a, b) => String(a).localeCompare(b);
Run Code Online (Sandbox Code Playgroud)

javascript sorting case-sensitive

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

ios 可缩放和可点击方案(自定义 Metro 应用程序)

我必须制作一个具有自定义方案的应用程序(mapkit 或谷歌地图不适用)。该方案是彼得堡地铁 svg 地铁方案

另外,应用程序中此方案下方将会有漂亮的背景。节点应该是可点击的并且路径可以设置动画。我确实知道如何进行路线计算等。但我不知道这张地图使用什么技术。也许精灵套件?请建议任何潜伏的起点。我不想使用简单的可点击滚动视图 - 自动布局这些节点等需要进行大量繁琐的工作。我想要干净而现代的解决方案。

ios sprite-kit swift

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

为什么scanf()需要&运营商(地址)在某些情况下,而不是其他情况?

为什么我们需要将一个&运算符scanf()用于存储整数数组中的值,而不是将字符串存储在char数组中?

int a[5];
for(i=0;i<5;i++)
scanf("%d",&a[i]);
Run Code Online (Sandbox Code Playgroud)

char s[5]; scanf("%s",s);
Run Code Online (Sandbox Code Playgroud)

我们需要传入存储值的地址,因为数组是指向第一个元素的指针.所以在int/float数组的情况下,它基本上就意味着(a+i).

但是字符串的情况怎么样?

c arrays scanf ampersand

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

打开文件就好像它是一个文本文件(即使它的扩展名不是.txt)

我试图打开与"TXT"文件关联的编辑器-这里有个致命的,虽然,我的文件实际上不具备txt扩展,所以我不能随便ShellExecute吧,我一定要找到手动关联的程序.

为此,我一直在尝试使用IApplicationAssociationRegistration::QueryCurrentDefaultShell 的COM方法,但是它返回一个ProgId,这对我来说是无用的.如何将其映射到EXE?我正在使用C#,但似乎并不相关.

编辑:下面链接的方法,您直接访问注册表不再适用于所有情况.正确的方法是上面的,但我需要下一步 - 如何获取返回的ProgId并获取相关的程序?

windows shell

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

是否可以交换C函数?

想看看是否有人知道它是否可以交换C函数......?

 void swap2(int(*a)(int), int(*b)(int)) {
   int(*temp)(int) = a;
   *a = *b;
   *b = temp;
   // Gives 'Non-object type 'int (int)' is not assignable
 }

 swap2(&funcA, &funcB);
Run Code Online (Sandbox Code Playgroud)

编辑

关于意图的更多数据 - 下面提供了一些答案,它们可以正常工作,例如创建函数ptr typedef,指向函数并切换它们,这样可以成功调用新交换的ptrs.

但是在交换后通过原始名称调用函数显示没有变化.基本上我正在寻找相当于objc"swizzle"的交流.

我开始认为这是不可能的,因为c完全缺乏反射,并且需要实际修改二进制本身(显然不可行).d:

欢迎评论.

c pointers function-pointers

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

在各自的线程上运行多个对象似乎多次运行同一个对象

我正在尝试创建一个类的12个新实例并运行它们中的每一个它是一个自己的线程,但它们接缝以共享相同的数据.所有12个实例都位于相同的X和Y位置,但它们每个都应该在随机方向上移动.正如你在代码中看到的,我尝试了各种apraoches,我无法找到原因.

我在这做错了什么?

ps是的...我知道还有一些未使用的变量.在我发布问题之前,我已经看过很多地方了

enemy.cpp

#include "enemy.h"
#include <time.h>
#include <windows.h>



FILE* pEnemyFile = fopen ("enemylog.txt","w");

Enemy::Enemy(const MouseServer& mServer, int& lastMousePosX, int& lastMousePosY, int& winSizeX, int& winSizeY )
    :mouseServer(mServer),
    lastMouseX( ( lastMousePosX ) ? lastMousePosX : 0 ), // evaluate if we get the reference
    lastMouseY( ( lastMousePosY ) ? lastMousePosY : 0 ),
    myPositionX(0),
    myPositionY(0),
    winSizeX(winSizeX),
    winSizeY(winSizeY),
    x(0),
    y(0)
{
    // original source:
    // http://msdn.microsoft.com/en-us/library/windows/desktop/ms682516(v=vs.85).aspx
    // Allocate memory for thread data.
    EDATA threadEnemyData = (EDATA) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,sizeof(enemyData));


    // http://www.codeproject.com/Articles/14746/Multithreading-Tutorial
    // …
Run Code Online (Sandbox Code Playgroud)

c++ oop winapi multithreading object

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