任何人都可以向我解释IEnumerable和IEnumerator吗?
例如,什么时候在foreach上使用它?IEnumerable和IEnumerator之间有什么区别?为什么我们需要使用它?
我正在尝试使用我的Mac终端将下载文件(我在线下载的phpMyAdmin)中的文件scp到我的Amazon EC2实例.
我使用的命令是:
scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.
Run Code Online (Sandbox Code Playgroud)
我得到的错误: 警告:身份文件myAmazonKey.pem无法访问:没有这样的文件或目录.权限被拒绝(publickey).失去了连接
我的myAmazonkey.pem和phpMyAdmin-3.4.5-all-languages.tar.gz都在下载中,所以我试过
scp -i /Users/Hello_Kitty22/Downloads/myAmazonKey.pem /Users/Hello_Kitty22/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.
Run Code Online (Sandbox Code Playgroud)
和我得到的错误: 警告:身份文件/User/Hello_Kitty22/Downloads/myAmazonkey.pem无法访问:没有这样的文件或目录.权限被拒绝(publickey).失去了连接
谁能告诉我如何解决我的问题?
ps有一个类似的帖子:scp(安全复制)到ec2实例没有密码, 但它没有回答我的问题.
我正在做一些像递归获取对象的属性和子属性的东西 ,但我想以递归方式使用反射来获取每个属性.我从递归打印属性中获取代码.
代码的问题是:它只降低了一级,我想知道如何使用反射自动获取所有属性?我刚刚编写了以下示例Container代码:
public class Container
{
public Bottle MyBottle { get; set; }
public List<Address> Addresses { get; set; }
public Container()
{
Address a = new Address();
a.AddressLine1 = "1 Main St";
a.AddressLine2 = "2 Main St";
Addresses = new List<Address>();
Addresses.Add(a);
MyBottle = new Bottle();
MyBottle.BottleName = "Big bottle";
MyBottle.BottageAge = 2;
}
}
public class Bottle
{
public string BottleName { get; set; }
public int BottageAge { get; set; }
} …Run Code Online (Sandbox Code Playgroud) 我试图理解 GetBuffer() 函数。看起来它返回指向 CString 的指针,这在msdn GetBuffer() 中得到确认 。但是,我不明白msdn GetBuffer() 中显示的示例。
LPTSTR p = s.GetBuffer( 10 );
Run Code Online (Sandbox Code Playgroud)
里面是10有什么原因吗?谁能告诉我这个例子的输出?
我试图在我的机器上安装Visual Studio 2008 SP1,但我遇到了这个问题.

我查了一下,看起来IIS Worker Process是某种 w3wp.exe,所以我查看了我的Windows任务管理器,发现w3wp.exe没有运行.我还在IIS管理器中查看了我的工作进程,但它也没有启动.那么,我如何关闭这个应用程序,以便我可以继续安装或者还有其他我可以做的事情?
我需要验证一个字符串,它可能包含字母数字和特殊字符,因为我必须传递只有Alpha字符的字符串(不允许使用数字或任何其他特殊字符)
在当前的方法中,我使用ASCII数字来评估每个字符是否为alpha.有没有其他有效的方法来发现字符串中是否存在特殊字符或数字?就像我们不能使用Like或者其他东西来检查一次而不是逐个字符?
For y = 2 To Len(sString)
If Not ((Asc(Mid$((sString,y,1))>64 AND Asc(Mid$((sString,y,1))<91) OR _
(Asc(Mid$((sString,y,1))>96 AND Asc(Mid$((sString,y,1))<123)) Then
//Display an error msg
Exit For
End If
Next y
Run Code Online (Sandbox Code Playgroud) 我已经通读了运算符<<被实现为朋友还是作为成员函数?和C++中的重载插入运算符看起来像是类似的问题,但没有解决我自己的问题.
我的头文件:
using namespace std;
class Animal {
private:
friend ostream & operator<< (ostream & o, Dog & d);
int number;
public:
Animal(int i);
int getnumber();
};
ostream & operator<< (ostream & o, Dog & d);
Run Code Online (Sandbox Code Playgroud)
我的cpp:
using namespace std;
int Animal::getnumber(){
return number;
}
ostream & Animal::operator<< (ostream & o, Dog & d){
//...
}
Animal::Animal(int i) : number(i){}
Run Code Online (Sandbox Code Playgroud)
实现很简单,但我收到错误:在cpp中 - 错误:类"Animal"类没有成员"operator <<".我真的没有得到它,因为我已经在Animal中将插入操作符声明为朋友,为什么我仍然会收到此错误?(把ostream放在公共场合并没有帮助)
我看到人们在初始化列表中的成员变量后放置一个括号.我想知道为什么人们这样做?
例如,我在头文件中有一个STL容器:
class A{
public:
A();
...
private:
vector<string> v;
}
Run Code Online (Sandbox Code Playgroud)
在源文件中:
A::A() : v() {}
Run Code Online (Sandbox Code Playgroud)
我的问题是什么是v()以及为什么人们这样做,因为看起来v看起来不像是初始化为值
如果我有:
bool shuffle(string s){
return next_permutation(s.begin(), s.end());
}
int main(int argc, char* argv[]){
string m = "abcde5";
do {
cout << m << endl;
} while(shuffle(m));
Run Code Online (Sandbox Code Playgroud)
我会得到:
abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 abcde5 ... abced5
这不是我想要的
但是,如果我这样做:
int main(int argc, char* argv[]){
string m = "abcde5";
do {
cout << m << endl;
} while(next_permutation(m.begin(), m.end()));
Run Code Online (Sandbox Code Playgroud)
我会的
abcde5 abce5d …
vector<int> v;
v.push_back(0); //you have to do this
//v[0] = 0; //this gives you an error
v[0] = 1000000; //but now you can set it
Run Code Online (Sandbox Code Playgroud)
那么,为什么第一次初始化一个向量时,你需要push_back,之后你可以设置它吗?对于基本类型,比如int,你可以做int i = 0; 用于初始化.
在下面的四种方法中,我们应该做的更好.我们想在这里进行动态分配以避免错误的函数返回.但是,我们在哪里删除f?删除调用better()的函数?但在这种情况下再也没有了.
Foo *bad() {
Foo f;
return &f;
}
Foo &alsoBad() {
Foo f;
return f;
}
Foo mediocre() {
Foo f;
return f;
}
Foo * better() {
Foo *f = new Foo;
return f;
}
Run Code Online (Sandbox Code Playgroud) 我现在正在编写很多java,所以我对java 静态方法和c ++ 静态函数感到困惑.
在java中,你可以从类中调用静态方法,我经常使用/看到它,例如:
public class A{
public void static b(){
System.out.println("hello");
}
}
Run Code Online (Sandbox Code Playgroud)
你能做到,A.b();你能用C++做到吗?如果是这样,与在java中这样做相比,它不是那么受欢迎吗?
c++ ×7
c# ×2
amazon-ec2 ×1
copy ×1
getbuffer ×1
ienumerable ×1
ienumerator ×1
iis ×1
insertion ×1
java ×1
memory-leaks ×1
msdn ×1
ostream ×1
pointers ×1
public-key ×1
recursion ×1
reflection ×1
regex ×1
scp ×1
stl ×1
terminal ×1
vb6 ×1
vector ×1
w3wp ×1