小编Shi*_*bli的帖子

双反斜杠的完整路径(C#)

是否可以使用双反斜杠获得完整路径Path.GetFullPath?像这样的东西:

C:\\Users\\Mammamia\\Videos\\Documents\\CFD\\geo_msh\\cubeOp.txt
Run Code Online (Sandbox Code Playgroud)

而不是这个:

C:\Users\Mammamia\Videos\Documents\CFD\geo_msh\cubeOp.txt
Run Code Online (Sandbox Code Playgroud)

或者还有其他方法吗?

c# filepath

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

push_back()之后向量的容量发生了变化

有人可以解释为什么我没有得到相同的输出?

main.cpp中:

#include <iostream>
#include <vector>

using namespace std;

struct Cell
{
    vector<int> vtx;
};

int main()
{
    vector <Cell> cells;
    Cell tmp;
    tmp.vtx.reserve(5);
    cells.push_back (tmp);
    cout << tmp.vtx.capacity() << endl;
    cout << cells[0].vtx.capacity() << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

5
0
Run Code Online (Sandbox Code Playgroud)

c++ stdvector c++11

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

将std :: array转换为std :: vector

在下面的代码中,函数(foo)参数(std::vector)的大小可以是使函数成为通用函数的任何函数.但是,有时大小容器是已知的,因此可以使用std :: array.问题是转换std::arraystd::vector.解决这个问题的最佳方法是什么?std::vector在这种情况下,总是使用总是更好吗?

#include <iostream>
#include <array>
#include <vector>

using namespace std;

// generic function: size of the container can be anything
void foo (vector<int>& vec)
{
    // do something
}

int main()
{
   array<int,3> arr; // size is known. why use std::vector?
   foo (arr); // cannot convert std::array to std::vector

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

c++ vector stdvector c++11 stdarray

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

使用valgrind来发现mpi代码中的错误

我有一个完美的串行代码,但mpirun -n 2 ./out它给出了以下错误:

./out': malloc(): smallbin double linked list corrupted: 0x00000000024aa090
Run Code Online (Sandbox Code Playgroud)

我尝试使用valgrind如:

valgrind --leak-check=yes mpirun -n 2 ./out
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

==3494== Memcheck, a memory error detector
==3494== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==3494== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==3494== Command: mpirun -n 2 ./out
==3494== 
Grid_0/NACA0012.msh
Grid_0/NACA0012.msh
>>> Number of cells: 7734
>>> Number of cells: 7734
0.000000  0         1.470622e-02
*** Error in `./out': malloc(): smallbin double …
Run Code Online (Sandbox Code Playgroud)

valgrind mpi

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

扩展双精度

是否可以精确地获得超过16位数double而不使用quadruple?如果可能,它是否依赖于编译器或其他东西?因为我知道有人说他正在double精确地工作并且具有22位精度.

precision double fortran

6
推荐指数
2
解决办法
3503
查看次数

DLL对执行速度的影响

首先,我使用用户定义的头cpp文件和相应的文件.然后我包括等等.如果我切换到DLL,代码的执行速度会被延迟吗?

其次,我知道在"DLL"中,"D"代表"动态"但是,我的朋友说有两种方法可以使用它们:静态和动态.如果它已经是动态的,我们与"静态"有什么关系?

c++ dll

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

INotifyPropertyChanged用于静态变量

我有一个非静态变量,INotifyPropertyChanged成功实现.然后我尝试将其设为全局,因此将其变为静态变量.但这一次,INotifyPropertyChanged不起作用.有解决方案吗

c# wpf static inotifypropertychanged

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

将shared_ptr设置为指向现有对象

对于下面的代码,我想知道如何设置std::shared_ptr指向两个成员函数中的给定对象.Vector3在程序结束之前,不会删除在main函数中分配的对象.

#include <memory>
#include <vector>

using std::vector;
using std::shared_ptr;

class Vector3
{
    // ...
};

class Face
{
    vector < shared_ptr <Vector3> > vtx;

    public:

    void addVtx (const Vector3& vt)
    {
        // vtx.push_back (); <-- how to push_back ?
    }

    void setVtx (const int v, const Vector3& vt)
    {
        if ( vtx.size() > 0 && v < vtx.size() )
        {
            // vtx[v] = &vt; <-- how to assign ?
        }
    }

};

int main ()
{ …
Run Code Online (Sandbox Code Playgroud)

c++ vector shared-ptr c++11

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

虚拟内存的实际应用

我用过了代码

MEMORYSTATUSEX memInfo;
memInfo.dwLength = sizeof(MEMORYSTATUSEX);
GlobalMemoryStatusEx(&memInfo);
DWORDLONG totalVirtualMem = memInfo.ullTotalPageFile;
DWORDLONG virtualMemUsed = memInfo.ullTotalPageFile - memInfo.ullAvailPageFile;
DWORDLONG totalPhysMem = memInfo.ullTotalPhys;
Run Code Online (Sandbox Code Playgroud)

这里提供

输出如下:2.3GB.

totalVirtualMem = 8.5 Gb
virtualMemUsed  = 2.3 Gb
totalPhysMem    = 4   Gb
Run Code Online (Sandbox Code Playgroud)

这是否意味着我的程序需要2.3Gb的内存?你还可以评论总虚拟内存和RAM吗?我也无法运行此代码:

PROCESS_MEMORY_COUNTERS_EX pmc;
GetProcessMemoryInfo(GetCurrentProcess(), &pmc, sizeof(pmc));
SIZE_T virtualMemUsedByMe = pmc.PrivateUsage;
Run Code Online (Sandbox Code Playgroud)

因为它给出了错误,

error C2664: 'GetProcessMemoryInfo' : cannot convert parameter 2 from 'PROCESS_MEMORY_COUNTERS_EX *' to 'PPROCESS_MEMORY_COUNTERS'
Run Code Online (Sandbox Code Playgroud)

memory virtual

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

检索作业提交限制

由于提交的作业过多,我收到以下错误消息:

sbatch:错误:批处理作业提交失败:作业违反会计/QOS 策略(作业提交限制、用户大小和/或时间限制)

如何检索“作业提交限制”,以便只有在之前的最大作业量完成后才能提交新作业?

slurm

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