小编A. *_*evy的帖子

竹版本

我有一种情况,我需要维护我的版本的版本信息.通过谷歌搜索我发现有限的信息.一种方法是在源代码控制上创建一个版本文件并继续更新.另一种是使用源代码控制版本号.最后一个是使用竹编号.我以前没有实现任何这个.colud任何人指出每种方法的利弊.

谢谢你,雷迪.

请至少告诉我你用哪种方法实现同样的方法.Thnq ..

versioning version-control build-process bamboo

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

寻找最优雅的代码调度程序

我认为问题很常见.您有一些输入字符串,并且必须根据字符串的内容调用函数.类似于字符串的switch().考虑命令行选项.

目前我正在使用:

using std::string;

void Myclass::dispatch(string cmd, string args) {
    if (cmd == "foo")
        cmd_foo(args);
    else if (cmd == "bar")
        cmd_bar(args);
    else if ...
        ...
    else
       cmd_default(args);
}

void Myclass::cmd_foo(string args) {
...
}

void Myclass::cmd_bar(string args) {
...
}
Run Code Online (Sandbox Code Playgroud)

并在标题中

class Myclass {
    void cmd_bar(string args);
    void cmd_foo(string args);
}
Run Code Online (Sandbox Code Playgroud)

所以每个foo和bar我都要重复四次(4次).我知道我可以先将函数指针和字符串提供给静态数组,然后在循环中进行调度,保存一些if ... else行.但是有一些宏技巧(或预处理器滥用,取决于POV),这使得有可能以某种方式定义函数,同时让它自动更新数组?所以我只需要写两次,如果内联使用,可能只写一次?

我正在寻找C或C++的解决方案.

c c++ design-patterns coding-style

7
推荐指数
3
解决办法
5494
查看次数

如何从有序地图中获取中值

我正在使用std :: map.有时我会做一个操作:找到所有项目的中值.例如,如果我添加

1 "s"
2 "sdf"
3 "sdfb"
4 "njw"
5 "loo"
Run Code Online (Sandbox Code Playgroud)

那么中位数是3.

是否有一些解决方案没有迭代地图中的一半以上的项目?

c++ stl

7
推荐指数
2
解决办法
3375
查看次数

使用MyISAM在MySQL的REPAIR TABLE中导致数据丢失的原因是什么?

REPAIR TABLE的MySQL文档说明了这一点

最好在执行表修复操作之前备份表; 在某些情况下,操作可能会导致数据丢失.可能的原因包括但不限于文件系统错误.

我想知道除文件系统错误之外是否还有其他原因导致数据丢失.有没有人在野外看到过这种情况?如果没有文件系统错误,修复将丢失数据的可能性有多大?

我的具体情况如下.我有Sun T5120服务器运行Solaris 10(SPARC)并使用MySQL 5.1.30.我有一个使用MyISAM引擎的表,偶尔会损坏.该表已被破坏的一些时间是由于我们的开发系统没有UPS的意外停电造成的.我不确定所有腐败是由于停电造成的,所以可能还有其他一些原因导致这种情况发生.比如这里列出的原因.

我想设置一个自动修复解决方案,以防生产系统中出现这些可疑的"其他原因",或生产UPS出现故障.我可以mysqlcheck --auto-recover按照本答案中的建议设置一个cron作业,或者我可以修改插入该表的进程,以便REPAIR TABLE EXTENDED在检测到损坏时立即执行该命令.但是,这两种方法都使用REPAIR TABLE并因此容易受到数据丢失的影响.

正如文档所示,我可以在尝试修复之前备份表,但是表格相当大,我不确定我是否有可用于备份的空间.我已经做了一些搜索,但没有找到任何解释为什么REPAIR TABLE会导致数据丢失,除了文档中提到的.那么当你有一个健全的文件系统时,修复是否会丢失数据,或者文档是否只是谨慎?

mysql

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

std :: vector是否可以=另一个std :: vector?

说我有以下内容:

std::vector<int> myints;
Run Code Online (Sandbox Code Playgroud)

然后我有一个返回int向量的函数:

std::vector<int> GiveNumbers()
{
  std::vector<int> numbers;
for(int i = 0; i < 50; ++i)
{
  numbers.push_back(i);
}

return numbers;
}
Run Code Online (Sandbox Code Playgroud)

我可以这样做:

myints = GiveNumbers();
Run Code Online (Sandbox Code Playgroud)

会安全地做到这一点,以便myint的数字为0到49而没有别的吗?这样做会清楚以前在myint中可能出现的情况吗?如果不是最正确的方法吗?

谢谢

c++ stl vector

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

Applet类加载器在applet的jar中找不到类

我开始问这个问题,然后在提交之前找出答案.我决定发布这个问题,以便遇到同样问题的其他人能够从我的错误中吸取教训.


我遇到了applet(实际上是JApplet)无法实例化另一个类的问题,该类与applet包含在同一个jar中.我在Java控制台上看到的例外是:

Exception in thread "thread applet-com.company.program.cm.hmi.MediatorApplet-1" java.lang.NoClassDefFoundError: com/company/program/cm/cs/JDataStore
    at com.company.program.cm.hmi.MediatorApplet.getMediator(MediatorApplet.java:63)
    at com.company.program.cm.hmi.MediatorApplet.init(MediatorApplet.java:49)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.company.program.cm.cs.JDataStore
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    ... 4 more
Caused by: java.io.IOException: open HTTP connection failed:http://localhost:8080/TransportHMI/pages/com/company/program/cm/cs/JDataStore.class
    at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    ... 8 more

我知道这个JDataStore类包含在jar中.如果我使用我列出的内容,jar tvf CM_Library.jar我可以看到它在适当的包下.但是,上面链接的异常使我相信类加载器不会搜索存档JDataStore,而是在Web服务器上查找JDataStore.class文件.为什么是这样?类加载器知道从jar加载MediatorApplet类,为什么不检查JDataStore呢?如果我没有在applet标签上正确指定参数,我也会在这里包含:

<applet id="mediator-applet"
        width="0"
        height="0"
        codebase="./"
        archive="CM_Library.jar"
        code="com.company.program.cm.hmi.MediatorApplet">
</applet>
Run Code Online (Sandbox Code Playgroud)

java applet classloader

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

C++ STL映射typedef错误

我写的一些代码有一个非常讨厌的问题.我发现其他人在stackoverflow上有同样的问题,我尝试了解决方案,但没有一个对我有用.

我键入了几个我正在使用的常见STL类型,除了我尝试键入地图时,没有其他任何问题.我在测试程序中包含我的标题时出现"some_file.h:83:错误:'''令牌之前的预期初始化程序"错误.

这是标题的重要部分(some_file.h):

#ifndef SOME_FILE_H
#define SOME_FILE_H
// some syntax-correct enums+class prototypes
typedef std::string str;
typedef std::vector<Column> col_vec;
typedef col_vec::iterator col_vec_i;
typedef std::vector<Row> row_vec;
typedef row_vec::iterator row_vec_i;
typedef std::vector<str> str_vec;
typedef str_vec::iterator str_vec_i;
typedef std::vector<Object> obj_vec;
typedef obj_vec::iterator obj_vec_i;
typedef std::map<Column, Object> col_obj_map; // error occurs on this line
typedef std::pair<Column, Object> col_obj_pair;
Run Code Online (Sandbox Code Playgroud)

some_file.cpp中的包含是:

#include <utility>
#include <map>
#include <vector>
#include <iostream>
#include <string>
#include <stdio.h>
#include <cc++/file.h>
#include "some_file.h"
Run Code Online (Sandbox Code Playgroud)

测试文件只包含该顺序的字符串,矢量和我的文件.它有一个主要的方法,只是做一个问候世界的事情.

有趣的是,我很快就把一个模板化的课程拼凑在一起,看看问题出在哪里(用" std::map<Column..."替换" hello<Column..."),它没有问题.

如果您使用的是没有' <'运算符的类,我已经创建了地图所需的运算符重载.

c++ stl typedef compiler-errors

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

如何在Windows CE控制台应用程序中处理Ctrl + C?

我需要在关闭应用程序之前进行一些清理,但SetConsoleCtrlHandler似乎不适用于Windows CE控制台应用程序.

Ctrl+C在Windows CE 6中是否有任何其他处理方法?

console winapi signals windows-ce

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

解析C中的空格分隔文本

我正在为一个应该以非常基本的形式模拟Unix shell的学校项目编写一个程序.它基本上解析输入,然后执行fork/exec.我需要能够单独读取程序中的参数(而不是从命令行传递给程序的参数).例如,我会提示:

Please enter a command:

......我需要能够解析两个......

ls
Run Code Online (Sandbox Code Playgroud)

要么

ls -l
Run Code Online (Sandbox Code Playgroud)

但麻烦的是,似乎没有简单的方法来做到这一点.scanf()将单独拉出每个参数,但我认为无法将它们放入char*数组中的不同插槽中.例如,如果我这样做......

char * user_input[10];
for (int i=0; i<10; i++){
    user_input[i] = (char *) malloc(100*sizeof(char));
}

for (int i=0; *(user_input[i]) != '@'; i++)
{
    scanf("%s", user_input[index]);
    index++;
}
Run Code Online (Sandbox Code Playgroud)

...然后user_input[0]会得到"ls",然后循环将重新开始,然后user_input[0]将获得"-l".

getsfgets采取整行.显然,这个问题可以通过浏览和挑选出每个单独的论点来逻辑地解决......但是如果有一种我想念的简单方法,我希望避免这样做.在那儿?

谢谢!

c command-line

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

将byte []转换为java中的用户定义类

我想转换从socket得到的byte []我写的一个类(Message).我试过了

byte[] data=new btyte[100];
.
.
.
Message m=(Message)data;
Run Code Online (Sandbox Code Playgroud)

但它没有用,给我错误我该怎么办?

java serialization

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

如何以线程安全的方式遍历二叉树?

我需要一种遍历二叉树的方法,使用多个线程并将符合条件的元素存储到列表中.我如何以线程安全的方式做到这一点?

c++ multithreading thread-safety data-structures

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

如何连接多个CString

所有函数都返回 CString,这是 MFC 代码,必须以 32 和 64 位进行编译。

目前我正在使用

CString sURI = GetURL();
sURI += GetMethod();
sURI += "?";
sURI += GetParameters();
Run Code Online (Sandbox Code Playgroud)

存在任何方式可以执行相同操作,例如:

CString sURI = GetURL() + GetMethod() + "?" + GetParameters();
Run Code Online (Sandbox Code Playgroud)

c++ winapi mfc cstring

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

为什么浏览器仍然允许Javascript看到cookie?

我确信还有很多网站,出于某种莫名其妙的原因,使用Javascript来操作cookie,但根据可能发生的所有XSS,确实没有充分理由允许这样做.为什么浏览器仍允许这样做?为什么不简单地阻止JS看到cookie?

javascript cookies

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