我正在研究提升线程.我发现线程类有一个接受可调用对象的构造函数.什么是可调用对象?
class CallableClass
{
private:
// Number of iterations
int m_iterations;
public:
// Default constructor
CallableClass()
{
m_iterations=10;
}
// Constructor with number of iterations
CallableClass(int iterations)
{
m_iterations=iterations;
}
// Copy constructor
CallableClass(const CallableClass& source)
{
m_iterations=source.m_iterations;
}
// Destructor
~CallableClass()
{
}
// Assignment operator
CallableClass& operator = (const CallableClass& source)
{
m_iterations=source.m_iterations;
return *this;
}
// Static function called by thread
static void StaticFunction()
{
for (int i=0; i < 10; i++) // Hard-coded upper limit
{ …Run Code Online (Sandbox Code Playgroud) //#include <stdio.h>
//#include <conio.h>
main(){
printf("Hi");
getch();
}
Run Code Online (Sandbox Code Playgroud)
当我编程这个时,它震惊了我,它没有实际导入任何包含printf函数的stdio等c库.为什么会这样?(使用Dev-C++ 4.9.9.2,保存为.c,而不是.cpp)
给定一个复杂的数据结构,其中每个子结构都有一个具有{true或false}域的变量,
(例如)
struct dataBlock{
struct {
/* more members */
char status;
} node1;
struct {
/* more members */
char status;
} node2;
/* More nodes */
};
Run Code Online (Sandbox Code Playgroud)
只有1或0的值只有一个字节是浪费.是否有一种C语言技术,每个节点中的状态只会占用一个字节中的一个位?我能想到的是使用MACROS但是宏不能包含在本地范围内吗?因此,具有宏状态将意味着程序中只有一个宏状态.因此,调用node1.status和node2.status使用相同的宏.
我遇到了问题,似乎无法找到解决方案..
int linearSearch(nodeptr list,char search){
int pos =0;
if(list==NULL)
return -1;
while(list->info!=search && list!=NULL){
pos++;
list=list->next;
}
if(list==NULL)
return -1;
else
return pos;
}
Run Code Online (Sandbox Code Playgroud)
我总是得到运行时错误.. :(
这是我使用反转字符串的代码std::string.但它不起作用..
#include <string>
#include <iostream>
using namespace std;
main()
{
string input;
int i, j;
cout << "Enter a string: ";
getline(cin,input);
string output;
for(i = 0, j = input.length() - 1; i < input.length(); i++, j--)
output[i]=input[j];
cout << "Reversed string = " << output;
cin.get();
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我们替换字符串输出,char output[100];它会工作.所以std::string不允许角色分配?