学习C++primer遇到的问题
源代码如下,
#include <iostream>
using std::cout; using std::endl;
#include <string>
using std::string;
#include <list>
using std::list;
#include <cstddef>
//using std::size_t;
int main()
{
char* words[] = {"stately", "plump", "buck", "mulligan"};
// calculate how many elements in words
size_t words_size = sizeof(words)/sizeof(char*);
// use entire array to initialize words2
list<string> words2(words, words + words_size);
for (size_t i = 0; i != words_size; ++i)
cout << words[i] << endl;
return 0;
}
//为什么将char*改成string就能编译通过????????????????
[解决办法]
why not?
[解决办法]
你是定义成 list<string> 吧,改成 list<char *>就不要改啊。
[解决办法]
char*是指向内存中固定字符串的首地址
[解决办法]
用这个头文件#include <string>
说明string 也和list一样都是容器。
#include <iostream>
using std::cout; using std::endl;
#include <string>
using std::string;
#include <list>
using std::list;
#include <cstddef>
//using std::size_t;
int main()
{
char* words[] = {"stately", "plump", "buck", "mulligan"};
// calculate how many elements in words
size_t words_size = sizeof(words)/sizeof(char*);
// use entire array to initialize words2
list<char*> words2(words, words + words_size);
for (size_t i = 0; i != words_size; ++i)
cout << words[i] << endl;
return 0;
}
我这样给也能运行通过
学习C++primer遇到的有关问题
学习C++primer遇到的问题源代码如下,#include iostreamusing std::cout using std::endl#include str
