小编Cin*_*out的帖子

我可以多次访问 boost::interprocess::managed_shared_memory 而不会一次又一次地打开它吗?

我正在使用boost::interprocess::managed_shared_memory创建要跨进程共享的内存。

以下是采取的步骤:

  1. 步

    a) Create memory.
    
    Run Code Online (Sandbox Code Playgroud)
  2. 步

    a) Open memory. 
    b) Write to memory
    
    Run Code Online (Sandbox Code Playgroud)
  3. 步

    a) Open memory.
    b) Read from memory.
    c) Open memory.
    d) Read from memory.
    e) Open memory.
    f) Read from memory.
    g) ...... and so on and so forth!
    
    Run Code Online (Sandbox Code Playgroud)

现在,问题是,在第 3 步中,我在阅读之前一遍又一遍地打开记忆!我认为这是多余的行为。

如何通过只打开一次来多次阅读?

实际上 open 命令在性能方面非常昂贵,这被证明是我的应用程序中的瓶颈。

c++ boost boost-interprocess

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

错误 C4146:一元减运算符应用于无符号类型,结果仍然无符号

我尝试在 Visual Studio 2013 中构建 CRF++ 并在最后一行出现此错误:

array_[begin + siblings[i].code].base =
            value_ ?
            static_cast<array_type_>(-value_[siblings[i].left]-1) :
            static_cast<array_type_>(-siblings[i].left-1);
Run Code Online (Sandbox Code Playgroud)

错误 C4146:一元减运算符应用于无符号类型,结果仍然无符号

具体来说,它在 darts.h,第 189 行。

我在 Visual Studio 2015 中再次构建,然后没有错误。

如何在 Visual Studio 2013 中解决此问题?

c++ casting visual-studio

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

c ++中的数组声明,没有指定大小

在c#我可以这样做:

private double[,] elevations;
Run Code Online (Sandbox Code Playgroud)

如何在c ++中执行相同操作而不指定此行上数组的大小或元素?

c++ multidimensional-array

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

c 打印数组长度

作为更大任务的一部分,我试图在 C 中打印数组的长度,即数组中有多少个元素。该数组是一个双精度数组,我想打印一个整数,它是数组中有多少双精度。我有这个代码:

int array_length( double array[] ) {
    double length = 0;
    length = sizeof(array) / sizeof(double);
    printf("%G", length);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我像这样在 main 中调用它:

int main( void ) {
    double test[] = {1.1,2.2,3.3,4.4,5.5};
    array_length(test);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是这会返回错误:

错误:数组函数参数“array”上的“sizeof”将返回“double *”的大小[-Werror=sizeof-array-argument]

研究告诉我

sizeof(array) / sizeof(double);
Run Code Online (Sandbox Code Playgroud)

会给我一个数组的长度,我正在尝试使用“%G”来允许我打印此代码返回的双精度值。

我相信“double*”意味着long double,所以我尝试将“%G”更改为“%LG”并将“double”的所有用法更改为“long double”,但这并没有解决问题。这里发生了什么?

c arrays

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

CQL错误InvalidRequest:code = 2200 [无效查询] message ="unconfigured table employess"

非常新的CQL(Cassendra).插入记录时出现此错误,

InvalidRequest:code = 2200 [无效查询] message ="unconfigured table employess"

这些是发出的命令,我错过了什么.(我正在尝试这个Cassendra CQL shell)

CREATE KEYSPACE people WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '3'}  AND durable_writes = true;

USE people;
CREATE Table employees(id uuid,name varchar,PRIMARY KEY(id, email));


cqlsh:people> insert into employess (id,name,email) values (now(),'Jon Don','jd@gmail.com');
Run Code Online (Sandbox Code Playgroud)

cql cassandra

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

有没有更好的方法来重写此代码段?

考虑以下:

if ((a || b) && (c || d))
{
    if (a && c) {...}
    else if (b && d) {...}
    else {...}
}
else {...}
Run Code Online (Sandbox Code Playgroud)

其中a,b,c和d是导致表达式bool.

从代码中可以清楚地看出,很少有这些表达式被重新计算.在a)清晰度方面是否有更好的方法?b)效率?

c++ if-statement

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

C++代码循环问题

我有以下代码,提示用户输入仅包含数字的代码.如果用户输入两次无效代码,程序将进一步没有有效代码.

int main()
{
    char code[10];
    cout << "Enter the code: ";
    cin >> code;

    int codeLength = strlen(code);
    int i = 0;
    while (code[i] >= '0' && code[i] <= '9')
        i++;

    if (i != codeLength)
    {
        cout << "The code is not valid: " << codDat << endl;
        cout << "Enter the code again: ";
        cin >> code;
    }

    cout << code <<endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如何在输入的代码仅包含数字之前,如何提示用户输入新代码?我已经尝试过了:

do {
    cout << "Enter the code again: ";
   cin >> code; …
Run Code Online (Sandbox Code Playgroud)

c++

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

关于C++中的输出

int i = 7, j = 3;
int *a = &i, *b = &j;
cout << (*a = *b) << ", " << *(*(&a));
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么输出3,7?

c++ cout output

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

访问另一个 .cpp 文件中的 .cpp 文件中定义的全局变量

考虑以下场景:

我的文件.cpp :

const int myVar = 0; // 全局变量

另一个文件.cpp:

void myFun()
{
    std::cout << myVar; // compiler error: Undefined symbol
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我添加extern const int myVar;在AnotherFile.cpp使用前,连接器作为抱怨

未解决的外部

我可以移动的声明myVar,以MyFile.h,包括MyFile.h在AnotherFile.cpp来解决这个问题。但我不想将声明移动到头文件中。有没有其他方法可以使这项工作?

c++ extern

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

C++ 中的字符串是否没有越界例外/错误?

string p="a";
cout<<p[4];
Run Code Online (Sandbox Code Playgroud)

这段代码没有给出任何错误。这是否意味着 C++ 中的字符串数据类型也不受数组限制?

c++ string c++11

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