我从你的困惑中得知,你还没有使用过 STL 容器……但是,如果你是 C++ 新手,那可能是个好主意。反正,begin
and end
任何 C++ 标准中都没有关键字,C++11 中也没有。但它们都是函数的名称,返回一个迭代器对象,用于遍历 STL 容器,如下所示:
vector<int> x = { 1, 2, 3, 4 };
vector<int>::iterator it;
for (it = x.begin(); it != x.end(); ++it)
{
cout << *it << endl;
}
在 C++ 日常实践中,这个概念非常常用,以至于这些名称被 CodeBlocks 列为“用户关键字”。用户关键字通常为绿色,因此可与语言关键字区分开。如果这让您感到困扰,您可以自由地操作该列表,甚至完全删除它。只需从菜单栏中选择“设置”-->“编辑器”,然后单击“语法突出显示”选项卡。在那里您可以进行所有您喜欢的设置。获取manual http://www.codeblocks.org/user-manual了解更多信息。
图片http://imageshack.us/a/img189/3956/m1qe.png http://imageshack.us/a/img189/3956/m1qe.png
无论是否有语法突出显示,您都不应该出现编译错误。原因可能是,您的项目包含标准库标头,例如#include <vector>
并且您的代码包含using namespace std;
某处。您可能使用预编译头 - 在这种情况下也要检查它。
另外我建议你看看标准库容器 http://en.cppreference.com/w/cpp/container并尝试一下。与普通数组相比,它们有几个优点,但您最好自己去发现。但是,不要让自己被这些迭代器吓倒 - 在 C++11 中你也可以编写
vector<string> y = { "Foo", "Bar" };
for (auto& str : y) cout << str << endl;
相反,这也适用于您的数组
float z[] = { 0.5f, 1.5f, 2.5f, 3.5f };
for (auto& num : z) cout << num << endl;