小编Ste*_*end的帖子

有一种简单的方法可以返回重复X次的字符串吗?

我试图在一个基于项深度的字符串之前插入一定数量的缩进,我想知道是否有一种方法可以重复X次返回一个字符串.例:

string indent = "---";
Console.WriteLine(indent.Repeat(0)); //would print nothing.
Console.WriteLine(indent.Repeat(1)); //would print "---".
Console.WriteLine(indent.Repeat(2)); //would print "------".
Console.WriteLine(indent.Repeat(3)); //would print "---------".
Run Code Online (Sandbox Code Playgroud)

.net c#

290
推荐指数
9
解决办法
17万
查看次数

是否正确使用#pragma warning push/pop来暂时改变警告级别?

偶尔编写一下根本不会发出警告的C++代码是很困难的.然而,启用警告是一个好主意.因此,通常需要禁用某些特定构造周围的警告,并在所有其他代码段中启用它们.

到目前为止,我已经看到了两种方法.

第一个是使用#pragma warning( push )#pragma warning( pop ):

 #pragma warning( push )
 #pragma warning( disable: ThatWarning )
 //code with ThatWarning here
 #pragma warning( pop )
Run Code Online (Sandbox Code Playgroud)

第二是使用#pragma warning( default ):

 #pragma warning( disable: ThatWarning )
 //code with ThatWarning here
 #pragma warning( default: ThatWarning )
Run Code Online (Sandbox Code Playgroud)

我在第二个变体中看到的问题是它丢弃了原始警告级别 - 警告可能在此之前已关闭或警告级别可能已被更改.使用default会丢弃这些改动.

第一种方法看起来很干净.它有什么问题吗?有没有更好的方法来实现同样的目标?

c++ warnings pragma compiler-warnings visual-c++

70
推荐指数
4
解决办法
5万
查看次数

LINQ性能常见问题

我试图掌握LINQ.最困扰我的是,即使我更好地理解语法,我也不想在不知不觉中牺牲性能来表达.

它们是"有效LINQ"的信息或书籍的集中存储库吗?如果做不到这一点,你个人最喜欢的高性能LINQ技术是什么?

我主要关注LINQ to Objects,但是当然也欢迎LINQ to SQL和LINQ to XML的所有建议.谢谢.

.net c# linq performance

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

C++线程池

什么是C++在生产代码中使用的线程池的良好开源实现(类似于boost)?

请提供您自己的示例代码或示例代码使用的链接.

c++ multithreading boost boost-thread threadpool

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

std :: transform使用C++ 0x lambda表达式

这是如何在C++ 0x中完成的?

std::vector<double> myv1;
std::transform(myv1.begin(), myv1.end(), myv1.begin(),
               std::bind1st(std::multiplies<double>(),3));
Run Code Online (Sandbox Code Playgroud)

原始问题和解决方案就在这里.

c++ stl transform c++11

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

basic_ios上标志的语义

我发现自己被莫名其妙反复rdstate()标志- ,good(),,bad() -以及它们是如何表达,和.eof()fail()basic_ios::operator!operator booloperator void*

有人可以让我摆脱苦难并解释这一点,所以我再也不用三思了吗?

c++ input c++-faq

28
推荐指数
2
解决办法
1256
查看次数

如何评论几行,里面有评论

我有这样的程序

int main(){ 

    char c;
    int i; /* counter */
    double d;

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

如果我要注释掉char,int和double,并且只返回未注释,我可以这样做吗?已经存在的评论会停止评论..是否有一种简单/快速的方式来评论出来?

c c++ comments

25
推荐指数
5
解决办法
5921
查看次数

std :: deque内存使用 - Visual C++,以及与其他人的比较

跟进std :: deque的内存开销对heque的影响是什么?

Visual C++ deque使用以下方法根据容器元素类型管理块:

#define _DEQUESIZ   (sizeof (value_type) <= 1 ? 16 \
    : sizeof (value_type) <= 2 ? 8 \
    : sizeof (value_type) <= 4 ? 4 \
    : sizeof (value_type) <= 8 ? 2 \
    : 1)    /* elements per block (a power of 2) */
Run Code Online (Sandbox Code Playgroud)

这导致小元件的内存占用非常大.通过将第一行中的16更改为128,我能够大幅减少大型所需的占用空间deque<char>.在100m push_back(const char& mychar)调用后,Process Explorer Private Bytes从181MB减少到> 113MB .

  • 任何人都能证明这些价值#define吗?
  • 其他编译器如何处理deque块大小调整?
  • 对于100m push_back调用 的简单测试,它们的占用空间(32位操作)是deque<char>什么?
  • STL是否允许在编译时覆盖此块大小而不修改 <deque>代码?

c++ memory-management deque

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

C++ - 如果一个对象在循环中声明,它的析构函数是在循环结束时调用的吗?

在C++中,对象的析构函数在它创建的块的结束"}"处被调用,对吧?所以这意味着,如果我有:

while(some_condition)
{
    SomeClass some_object;
    some_object.someFunction();
    some_variable = some_object.some_member;
}
Run Code Online (Sandbox Code Playgroud)

那么在循环的一次迭代中创建的对象的析构函数将在循环结束时被调用,然后创建另一个对象,对吗?

谢谢.

c++ loops class object

14
推荐指数
2
解决办法
5233
查看次数

有没有办法在C++中静态初始化动态分配的数组?

在C++中,我可以静态初始化一个数组,例如:

int a[] = { 1, 2, 3 };
Run Code Online (Sandbox Code Playgroud)

有一种简单的方法可以将动态分配的数组初始化为一组立即值吗?

int *p = new int[3];
p = { 1, 2, 3 }; // syntax error
Run Code Online (Sandbox Code Playgroud)

...或者我必须手动复制这些值吗?

c++ arrays initialization c++11

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