#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector<int> ivec(10, 42);
for (auto i = ivec.begin(); i != ivec.end(); i++)
{
cout << *i << " ";
}
return 0;
}
#include
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::vector;
using std::string;
int main()
{
vector<string> svec(10, "hello ");
for (auto i = svec.begin(); i != svec.end(); i++)
{
for (auto &c : (*i))
{
c = toupper(c);
}
cout << *i;
}
return 0;
}
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector<int> ivec(10, 20);
for (auto &c : ivec)
{
c *= 2;
}
for (auto &c : ivec)
{
cout << c << " ";
}
return 0;
}
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector<int> ivec(10, 20);
for (auto i = ivec.begin(); i != ivec.end() - 1; i++)
{
cout << *i + *(i + 1) << " ";
}
auto i = ivec.begin();
auto j = ivec.end() - 1;
while (i < j)
{
cout << *i + *j << " ";
i++;
j--;
}
return 0;
}
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector<unsigned> scores(11, 0);
auto scoresiter = scores.begin();
unsigned grade;
while (cin >> grade)
{
if (grade <= 100)
{
++*(scoresiter + grade / 10);
}
}
for (auto score : scores)
{
cout << score << " ";
}
return 0;
}
迭代器没有加法运算,end-beg表示当前位置与起始位置之间相隔多少元素,除2则为中间位置与beg的差距,加上beg则表示将beg移动到中间位置。
unsigned buf_size = 1024;
int ia[buf_size]; //非法,buf_size必须是个常量表达式
int ib[4 * 7 - 14]; //正确。
int ic[txt_size()]; //非法,txt_size()必须是个常量值
char st[11] = "fundamental"; //非法,数组大小应该为12
string sa[10]; //值为空字符串
int ia[10]; //值全为0
int main()
{
string sa2[10]; //值为空字符串
int ia2[10]; //未定义值
return 0;
}
1.数组定长。
2.数组不可以随意增加删除元素。
constexpr size_t array_size = 10;
int ia[array_size];
for (size_t ix = 1; ix <= array_size; i++)
{
ia[ix] = ix;
}
当ix到10,下标越界,需要改成size_t ix = 0; ix < array_size; i++
。