我注意到有两种方法可以创建C++对象:
BTree *btree = new BTree;
Run Code Online (Sandbox Code Playgroud)
和
BTree btree;
Run Code Online (Sandbox Code Playgroud)
据我所知,唯一的区别在于如何访问类对象(.与 - >运算符),并且当使用第一种方式时,私有整数被初始化为0.
哪种方式更好,有什么区别?
你怎么知道何时使用其中一个?
我正在研究一个我们必须使用信号量来解决的问题.我有一个数组,其中包含两个信号量,gsem并给出一定的条件调用sem_wait(&(gsem[me])),这应该等到特定进程被唤醒.但是,出于某种原因,它给了我错误Bad file descriptor.我向上看sem_wait,Open Group规范说这不是错误sem_wait导致的.这让我的整个程序变得疯狂,我不知道为什么会失败.
编辑:违规代码,根据要求.
120 sem_wait(&mutex);
121 if (inside[opp] > 0 || waiting[opp] > 0) {
122 sem_wait(&screen);
123 printf("%s %u waiting\n", names[me], t);
124 sem_post(&screen);
125 waiting[me]++;
126 sem_post(&mutex);
127 int hg = sem_wait(&(gsem[me]));
128 if (hg < 0)
129 printf("%s\n", strerror(errno));
130 }
Run Code Online (Sandbox Code Playgroud)
我应该注意这是一项家庭作业,我们需要使用信号量.教授称之为"男女皆宜的浴室".男人和女人都可以使用它,但不能同时使用它.inside[opp]是浴室里异性的人数.waiting[opp]是等待使用它的异性的数量.screen是一个锁定访问权限的信号量stdout.该解决方案基于我们的教科书中使用传递接力棒的读者/作者问题的解决方案.
我还应该注意,我们首先必须在Ada中编写解决方案,然后将其转换为C.我的Ada解决方案有效,我逐字翻译.我确定这是一些小的语法细节.最后,我正在研究Snow Leopard,如果有帮助的话.
我正在为一个练习编写一个程序,该程序将从文件中读取数据并将其格式化为可读.到目前为止,我有一些代码可以将标题与其下的数据分开.这里是:
int main() {
ifstream in("records.txt");
ofstream out("formatted_records.txt");
vector<string> temp;
vector<string> headers;
for (int i = 0; getline(in,temp[i]); ++i) {
static int k = -1;
if (str_isalpha(temp[i])) {
headers[++k] = temp[i];
temp.erase(temp.begin() + i);
}
else {
temp[i] += "," + headers[k];
}
}
}
Run Code Online (Sandbox Code Playgroud)
(str_isalpha()只是一个适用isalpha()于字符串中每个字符的函数.)现在,此程序中的for循环不执行,我无法弄清楚原因.有人知道吗?
编辑:按照建议,我改为
string line;
for (int i = 0; getline(in,line); ++i) {
temp.push_back(line);
Run Code Online (Sandbox Code Playgroud)
仍然完全跳过for循环.
我有一些代码需要在特定中断结束时运行.
我不想在中断本身的上下文中执行它,但我也不希望它在线程模式下执行.
我想以低于高级别中断的优先级运行它,该高级别中断促使其运行,但也优先级高于线程级别(以及其他一些中断).
我想我需要使用其他一个中断处理程序.
最好使用哪些以及调用它们的最佳方法是什么?
目前我正在计划仅使用中断处理程序来处理一些我没有使用的外设,并通过直接通过NVIC设置位来调用它们,但我希望有更好的,更官方的方式.
谢谢,
我想抛弃SVN for Git.我现在的SVN仓库设置有下躯干(项目/trunk/projecta,/trunk/projectb等有标签,并在树枝/tags/projecta-1.0等).我想通过使用git-svn将它们从SVN中拉出来为每个项目创建不同的Git存储库.
我已成功将整个SVN仓库撤回到本地Git仓库,但现在所有项目都存在于同一个Git仓库中.此时是否有可能将它们分开?
由于True Type字体只是矢量,我想知道是否有一种方法可以获得一个字母的向量(点数组),因为我正在使用WinAPI.谢谢
我编写了一个批处理文件,由程序作为后处理实用程序启动.批处理文件读取调用程序提供的~24个参数,将它们存储到变量中,然后将它们写入各种文本文件.
由于CMD中的最大输入变量是%9,因此必须使用'shift'命令重复读取并将这些变量单独存储到命名变量中.因为程序输出几个类似的批处理文件,结果是顺序打开几个CMD窗口,分配变量和写入数据文件.这使得调用程序耗费了太长时间.
在我看来,我可以更快地释放调用程序,如果有可能编写一个非常简单的批处理文件,可以将所有命令参数写入文本文件,我可以在以后处理它们.基本上,只需抓住参数列表,编写并完成.
问:有没有办法将整个系列的参数数据视为一个大的文本字符串并将其写入一个大变量...然后将整个大事件回显到一个文本文件?然后在没有程序等待恢复时将字符串读入%n个变量?
参数列表类似于25 - 30个单词,少于200个字符.
参数列表示例:
"名字""姓氏""123 Steet Name Way""Cityname"ST 12345 1004968 06/01/2010"名字+姓氏"101738"On Account"20.67 xy-1z 1 8.95 3.00 1.39 0 0 239 8.95
引号中的项目作为字符串变量处理.列表以空格分隔.
有什么建议?
快速的问题.我试图使用javascript,jquery或php来实现它,所以当我点击链接时,它会将我的页面上的静态图像替换为另一个图像,持续15秒,然后恢复为原始图像.最好的方法是什么?
我已经阅读了这个问题,我仍然不知道是否有可能继续指向方法Java中的数组,如果任何人知道,如果这是可能的,或者不是这将是一个真正的帮助.我正试图找到一个优雅的解决方案,保持一个字符串列表和相关的功能,而不会写出数百个'if'的混乱.
干杯
我想在Scala中运行时创建一个类.现在,只考虑一个简单的例子,我想用相似的java bean来创建一些属性,我只在运行时知道这些属性.
如何创建scala类?我愿意从Scala的源文件创建,如果有编译它,并在运行时加载的方式,我可能要为我有时候有一些复杂的功能,我想添加到类.我该怎么做?
我担心我读到的scala解释器是沙盒化它加载的解释代码,以便托管解释器的一般应用程序无法使用它?如果是这种情况,那么我将无法使用动态加载的scala类.
无论如何,问题是,如何在运行时动态创建一个scala类并在我的应用程序中使用它,最好的情况是在运行时从scala源文件加载它,类似于interpreterSource("file.scala")它并加载到我当前的运行时,第二最好的情况是通过调用方法来创建. createClass(...)在运行时创建它.
谢谢,菲尔
c++ ×3
arrays ×1
c ×1
class ×1
cmd ×1
cortex-m3 ×1
css ×1
embedded ×1
fonts ×1
for-loop ×1
function ×1
g++ ×1
getline ×1
git ×1
git-svn ×1
html ×1
interpreter ×1
interrupt ×1
java ×1
javabeans ×1
javascript ×1
jquery ×1
object ×1
parameters ×1
php ×1
pointers ×1
runtime ×1
scala ×1
semaphore ×1
svn ×1
variables ×1
winapi ×1