小编man*_*ans的帖子

在C++中转置矩阵的最快方法是什么?

我有一个矩阵(相对较大),我需要转置.例如假设我的矩阵是

a b c d e f
g h i j k l
m n o p q r 
Run Code Online (Sandbox Code Playgroud)

我希望结果如下:

a g m
b h n
c I o
d j p
e k q
f l r
Run Code Online (Sandbox Code Playgroud)

最快的方法是什么?

c++ algorithm transpose matrix

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

使用git reset --hard后无法推送更改

我有一个错误,并对git做了一些我不应该提交的更改.在我提交之后,我推动了我的更改.然后,我使用以下命令尝试重置我的更改.

 git reset --hard head
Run Code Online (Sandbox Code Playgroud)

现在我想使用此命令将此"重置"推送到远程存储库:

git push MyBranch
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个错误:

remote: error: denying non-fast-forward refs/heads/branch (you should pull first)
Run Code Online (Sandbox Code Playgroud)

我尝试使用此命令但没有成功:

git push -f "origin" 
Run Code Online (Sandbox Code Playgroud)

知道我能做什么吗?

git git-revert

44
推荐指数
2
解决办法
5万
查看次数

如何在编译时检查结构的大小?

我想添加在编译期间检查结构大小的代码,以确保它是预定义的大小.例如,当我移植此代码或在编译期间添加/删除结构中的项时,我想确保此结构的大小为1024字节:

#pack(1)
struct mystruct
{
    int item1;
    int item2[100];
    char item3[4];
    char item5;
    char padding[615];
 }
Run Code Online (Sandbox Code Playgroud)

我知道如何在运行时使用如下代码执行此操作:

 if(sizeof(mystruct) != 1024)
 { 
     throw exception("Size is not correct");
 }
Run Code Online (Sandbox Code Playgroud)

但如果我在运行期间这样做,那将浪费处理.我需要在编译期间执行此操作.

如何在编译期间执行此操作?

c++ static-assert data-structures

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

抛出异常后我需要返回(c ++和c#)

我有一个生成异常的函数.例如,以下代码:

void test()
{
    ifstream test("c:/afile.txt");
    if(!test)
    { 
         throw exception("can not open file");
    }
    // other section of code that reads from file.
}
Run Code Online (Sandbox Code Playgroud)

抛出异常后我需要返回吗?

c#是什么情况?

c# c++ exception

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

如何使用std :: atomic <>

我有一个类,我想在不同的线程中使用,我想我可以使用std::atomic这种方式:

class A
{
    int x;

public:
    A()
    {
        x=0;
    }

    void Add()
    {
        x++;
    }

    void Sub()
    {
        x--;
    }     
};
Run Code Online (Sandbox Code Playgroud)

在我的代码中:

  std::atomic<A> a;
Run Code Online (Sandbox Code Playgroud)

并在另一个线程中:

  a.Add();
Run Code Online (Sandbox Code Playgroud)

  a.Sub();
Run Code Online (Sandbox Code Playgroud)

但我收到一个a.Add()未知的错误.我怎么解决这个问题?

有没有更好的方法来做到这一点?

请注意,这是一个示例,我想要的是确保对A类的访问是线程安全的,所以我不能使用

std::atomic<int> x;
Run Code Online (Sandbox Code Playgroud)

如何使用线程安全的类std::atomic

c++ multithreading atomic c++11

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

这个...(三个点)在c ++中是什么意思

这似乎是一个愚蠢的问题,但当我试图在SOF中查看这个答案时,

编译时生成的表

我注意到这样的陈述:

template<
    typename IntType, std::size_t Cols, 
    IntType(*Step)(IntType),IntType Start, std::size_t ...Rs
> 
constexpr auto make_integer_matrix(std::index_sequence<Rs...>)
{
    return std::array<std::array<IntType,Cols>,sizeof...(Rs)> 
        {{make_integer_array<IntType,Step,Start + (Rs * Cols),Cols>()...}};
}
Run Code Online (Sandbox Code Playgroud)

进一步来说 :

std::size_t ...Rs
Run Code Online (Sandbox Code Playgroud)

要么

std::index_sequence<Rs...>
Run Code Online (Sandbox Code Playgroud)

什么......意味着什么?

编辑1

报告为与此问题相关的原始问题的问题不正确:

那个问题不能回答这两种情况(因为它们不是具有可变数量参数的函数)

std::size_t ...Rs
std::index_sequence<Rs...>
Run Code Online (Sandbox Code Playgroud)

但这是一个很好的解释:

https://xenakios.wordpress.com/2014/01/16/c11-the-three-dots-that-is-variadic-templates-part/

c++

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

HTML中的母版页

有没有办法在纯HTML中创建与ASP.NET中的主/内容页面类似的想法?

我想用HTML创建几个页面,但是我希望它们看起来都是一样的,有些内容不同.有没有办法做到这一点,而不创建几个彼此非常相似的页面?

html master-pages

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

C和C++中float和double的大小是多少?

我正在寻找是否有任何类似的标准类型uint32_t总是映射到32位无符号整数类型,但我找不到任何.

float所有平台上的大小总是4字节?
大小double总是8?

两种标准都有关于此事的任何说法吗?

我想确保我的大小在所有平台(x86和x64)上总是相同的,所以我使用标准的int类型,但我找不到任何类似的typedef for floatdouble.

c c++ floating-point 64-bit x86

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

如何取消删除github上的分支?

当我不应该这样做时,我似乎删除了github上的一个分支.

我做的是如下:

1-我在我的系统中添加了一个新的.gitignore

2-我用

 git rm -r --cached .  
 git add .  
 git commit -m ".gitignore is now working"  
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我在本地系统上有一个分支,但服务器有两个分支.

然后我将我的分支推送到服务器,因为我没有第二个分支,所以在服务器上删除了第二个分支.

我该如何把它带回来?

我使用Github作为远程服务器.

git github

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

为什么这个结构24的大小?

我有一个结构,我想计算它的大小:

#pragma pack(push,4)
struct  MyStruct
{  
    uint32_t i1;    /* size=4, offset=0. */
    uint32_t i2;    /* size =4 offset =4 */
    uint16_t s1;    /* size =2 offset=8 */
    unsigned char c[8]; /* size=8 offset=12*/
    uint16_t s2;    /* size=2 offset=20. */
    uint16_t s3;    /* size=2 offset=24. */

} ; // total size is 26 

static_assert(sizeof(MyStruct) == 24, "size of MyStruct incorrect");
#pragma pack(pop)
Run Code Online (Sandbox Code Playgroud)

静态断言显示大小为24,但我的计算表明它应该是26.

为什么尺寸为24?

我正在使用visual studio 2012处理Windows 7,32位应用程序

c c++ struct sizeof memory-alignment

20
推荐指数
2
解决办法
2255
查看次数