小编Neg*_*ero的帖子

list.sort和std :: sort有什么区别?

我试图使用clang编译以下代码但得到以下错误.

我想知道为什么sortlist课堂上使用会有效,但不是std::sort.

#include <list>
#include <iostream>

int main(){
    std::string strings[] = {"hello", "nihao", "byebye", "yo"};
    std::list<std::string> cars(strings, strings+sizeof(strings) / sizeof(char **));

    // cars.sort(std::less<std::string>()); // compiles fine and produce a sorted list

    std::sort(cars.rbegin(), cars.rend(), std::less<std::string>() ); // this one won't compile

    for (std::list<std::string>::iterator it = cars.begin(); it != cars.end(); ++it)
        std::cout << *it << " - ";

    std::cout << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

/usr/include/c++/4.2.1/bits/stl_iterator.h:320:25:错误:二进制表达式的操作数无效('iterator_type'(又名'std :: _ List_iterator>')和'iterator_type'){return __y .base() - __ x.base(); }

c++ algorithm templates std

9
推荐指数
1
解决办法
5025
查看次数

CMake生成的Xcode项目无法找到从Xcode构建的二进制"产品"

我正在尝试使用CMake Generated Xcode项目.构建时一切看起来都很好,除了Xcode找不到构建的二进制文件.下面是我成功构建产品后的截图.我可以在项目源目录中看到它们.但是,请注意Xcode显示RED"HelloWorld",这意味着它无法找到产品.

显示红色的产品截图

配置:在Lion 10.7.2上使用Xcode 4.2进行CMake 2.8.6

这是CMakeLists.txt

project(HelloWorld)

add_executable(${PROJECT_NAME} HelloWorld.cpp)
Run Code Online (Sandbox Code Playgroud)

这是HelloWorld.cpp的源代码

#include <iostream>

int main(){
    std::cout << "HelloWorld!" << std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我试图直接从Xcode创建一个原始项目,编译后,产品显示黑色而不是红色字体,这意味着Xcode找到了产品.所以我相信这与CMake Generated Xcode项目有关.

有人有任何想法吗?怎么解决这个问题?

c++ macos xcode cmake

6
推荐指数
1
解决办法
1947
查看次数

我想知道为什么这个代码会产生2

我不知道是否有人能为我解释这段代码?

unsigned int x = 0;
(x ^= x ) || x++ || ++x || x++;

printf("%d\n", x);
Run Code Online (Sandbox Code Playgroud)

当我使用gcc 4.2在我的计算机上编译它时,输出为2.

最初我想也许这个行为是未指定的,但后来我想|| 将优先于其他运营商,所以答案不应该是3吗?由于有三个"++".

谁能解释一下?谢谢

c

3
推荐指数
2
解决办法
131
查看次数

标签 统计

c++ ×2

algorithm ×1

c ×1

cmake ×1

macos ×1

std ×1

templates ×1

xcode ×1