我如何将此代码转换为C++?
string[] strarr = {"ram","mohan","sita"};
foreach(string str in strarr) {
listbox.items.add(str);
}
Run Code Online (Sandbox Code Playgroud)
mis*_*tor 114
std::array<std::string, 3> strarr = {"ram", "mohan", "sita"};
for(const std::string& str : strarr) {
listbox.items.add(str);
}
Run Code Online (Sandbox Code Playgroud)
std::string strarr[] = {"ram", "mohan", "sita"};
for(int i = 0; i < 3; ++i) {
listbox.items.add(strarr[i]);
}
Run Code Online (Sandbox Code Playgroud)
要么
std::string strarr[] = {"ram", "mohan", "sita"};
std::vector<std::string> strvec(strarr, strarr + 3);
std::vector<std::string>::iterator itr = strvec.begin();
while(itr != strvec.end()) {
listbox.items.add(*itr);
++itr;
}
Run Code Online (Sandbox Code Playgroud)
boost::array<std::string, 3> strarr = {"ram", "mohan", "sita"};
BOOST_FOREACH(std::string & str, strarr) {
listbox.items.add(str);
}
Run Code Online (Sandbox Code Playgroud)
Art*_*yom 25
在C++ 0x中你有
for(string str: strarr) { ... }
Run Code Online (Sandbox Code Playgroud)
但直到那时使用普通的循环.
Tha*_*mer 12
在习惯了var
C#中的关键字之后,我开始auto
在C++ 11中使用关键字.它们都通过推理确定类型,并且在您只希望编译器为您确定类型时非常有用.这是代码的C++ 11端口:
#include <array>
#include <string>
using namespace std;
array<string, 3> strarr = {"ram", "mohan", "sita"};
for(auto str: strarr) {
listbox.items.add(str);
}
Run Code Online (Sandbox Code Playgroud)
只是为了好玩(新的lambda函数):
static std::list<string> some_list;
vector<string> s;
s.push_back("a");
s.push_back("b");
s.push_back("c");
for_each( s.begin(), s.end(), [=](string str)
{
some_list.push_back(str);
}
);
for_each( some_list.begin(), some_list.end(), [](string ss) { cout << ss; } );
Run Code Online (Sandbox Code Playgroud)
虽然建议做一个简单的循环:-)