小编Mar*_*son的帖子

C++向量,返回与参数

可能重复:
如何在C++中"返回一个对象"

我想知道以下三种方法之间是否存在差异:

void FillVector_1(vector<int>& v) {
    v.push_back(1); // lots of push_backs!
}

vector<int> FillVector_2() {
    vector<int> v;
    v.push_back(1); // lots of push_backs!
    return v;
}

vector<int> FillVector_3() {
    int tab[SZ] = { 1, 2, 3, /*...*/ };
    return vector<int>(tab, tab + SZ);
}
Run Code Online (Sandbox Code Playgroud)

c++ stl vector

10
推荐指数
4
解决办法
7371
查看次数

C++设置迭代器删除

是否允许擦除迭代器指向的元素,并在一行中前进相同的迭代器以转到下一个元素?

set<int>::iterator it = S.begin();
while (it != S.end()) {
    if (shouldBeRemoved(*it)) {
        S.erase(it++); // is this line valid?
    } else {
        ++it;
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ stl set

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

在C++/CLI中跟踪引用

有人可以解释我下面的代码片段吗?

value struct ValueStruct {
    int x;
};

void SetValueOne(ValueStruct% ref) {
    ref.x = 1;
}

void SetValueTwo(ValueStruct ref) {
    ref.x = 2;
}

void SetValueThree(ValueStruct^ ref) {
    ref->x = 3;
}

ValueStruct^ first = gcnew ValueStruct;
first->x = 0;
SetValueOne(*first);

ValueStruct second;
second.x = 0;
SetValueTwo(second); // am I creating a copy or what? is this copy Disposable even though value types don't have destructors?

ValueStruct^ third = gcnew ValueStruct;
third->x = 0;
SetValueThree(third); // same as the first …
Run Code Online (Sandbox Code Playgroud)

c++-cli

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

C#编译器:/ nostdlib选项

在编译时,如何才能将stdlib(mscorlib.dll)包含到我的C#应用​​程序中?据我所知,所有类都继承System.Object类,该类在mscorlib.dll中定义.更重要的是 - 诸如int之类的类型只是例如System.Int32的别名,它们也在mscorlib中定义.这个选项曾经使用过吗?

.net c# mscorlib

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

Boost.Bind - 理解占位符

我试图理解下面的例子,它类似于(但不相同)之前发布的SO 帮助理解boost :: bind占位符参数:

#include <boost/bind.hpp>
#include <functional>

struct X {
    int value;
};

int main() {    
    X a = { 1 };
    X b = { 2 };

    boost::bind(std::less<int>(),
        boost::bind(&X::value, _1),
        boost::bind(&X::value, _2))
    (a, b);
}
Run Code Online (Sandbox Code Playgroud)

这怎么可能,最外层绑定函数知道它必须将第一个参数传递给第二个绑定(期望_1),第二个参数传递给第三个绑定(期望_2)?我看到这个的方式是首先评估内部绑定器,因此它们成为两个一元函数对象,稍后传递给less<int>对象的绑定器.当用两个对象调用新创建的功能对象时,a转到第一个内部绑定,然后b转到第二个内部绑定.如果我是对的,我们会使用_1两次.我一定是错的.我将再次重复我的问题以使我的问题清楚:外部绑定器如何知道哪个占位符用于哪个内部绑定器?

c++ boost boost-bind

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

通过HTTP传输文件

据我所知,可以通过HTTP协议传输二进制文件.但HTTP是基于文本的协议,典型的HTTP响应框架如下所示:

HTTP/1.1 200 OK
Date: Wed, 23 May 2012 22:38:34 GMT
Content-Length: 438
Content-Type: text/html; charset=UTF-8

Here goes content
Run Code Online (Sandbox Code Playgroud)

如果是这样,二进制文件应该如何编码?什么是内容类型?内容是用base64编码的 - 与POP3协议中的附件相同吗?或者它是原始数据(如果是这样可能不会导致问题吗?)

http httpwebresponse http-headers

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

C++/CLI接口类与接口结构

以下声明之间的区别是什么(在C++/CLI中):

public interface class IC {};

public interface struct IS {};
Run Code Online (Sandbox Code Playgroud)

类似的情况:

public enum class EC {};

public enum struct ES {};
Run Code Online (Sandbox Code Playgroud)

c++-cli

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

比较std :: function <>

有可能以某种方式比较两个std::tr1::function<>对象吗?如果我有一组function<void(int,float)>对象并想要添加和删除事件处理程序,该怎么办?添加是微不足道的,但找到要删除的那个似乎是不可能的.

c++ tr1 c++11

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

在foreach中将节点添加到LinkedList <T>

我可以安全地将节点添加到foreach语句中的LinkedList容器中吗?如果我使用while循环有什么区别吗?或者它永远不会被允许并且可能导致一些问题?

foreach(var node in myList)
{
    if(condition)
        myList.AddLast(new MyNode());
}
Run Code Online (Sandbox Code Playgroud)

它会一直有效吗?

.net foreach linked-list

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

Windows Phone 7.1 Light/Dark主题管理

如何在应用程序中切换主题?如果我覆盖默认样式怎么办?我还可以分别为明暗主题定义不同的样式吗?为什么图标颜色会更改 - 即如果主题设置为黑暗,图标的黑色背景将变为白色.如果我明确地将应用程序栏的背景样式覆盖为白色,它是否也会变为白色?我怎样才能确保没有任何变化,我的应用在Light and Dark主题中看起来一样?

windows-phone-7 windows-phone windows-phone-7.1

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